據官方 tg 群訊息,北京時間 5 月 22 日晚 bogged finance 專案遭遇閃電貸攻擊,隨後 bog 代幣價格斷崖式下跌。知道創宇區塊鏈安全實驗室 第一時間跟進分析本次安全事件。
以造成本次閃電貸攻擊的其中一筆交易為例,對應具體交易 hash 如下:0x47a355743456714d9abc23e1dff9e26430e38e84cc8b8e0a0b4ca475918f3475
駭客地址 0x4622a1f3d05dcf5a0589c458136c231009b6a207 透過攻擊合約 0xe576790f35a8cc854d45b9079259fe84f5294e07 進行閃電貸攻擊,透過呼叫攻擊合約中攻擊函式,傳入引數 15000000000000000000000,透過 bankcontroller(implementlogic)合約進行閃電借貸15000bnb,透過 wbnb 合約兌換後開始進行套利攻擊。
本次閃電貸攻擊主要原因是由於 bogged finance 合約中 _transferfrom 函式中利用 _txburn 函式出現邏輯漏洞,代幣合約對所有交易應當收取 5% 的交易額作為交易費用來銷燬,其中 4% 分紅給 lp 提供者,1% 被燒燬,但在 _transferfrom 函式中未校驗轉賬地址,允許向自己轉賬,在自我轉賬的過程中,僅扣除1%手續費,而包括攻擊者在內的 lp 提供者獲得4%的分紅獎勵,所以攻擊者可以透過新增大量流動性進行流動性挖礦,並且反覆自我轉賬獲利,最終移除流動性從而完成攻擊過程。
透過檢視瀏覽器交易顯示,攻擊者在該筆交易中分4次將1298.20bnb、1489.05bnb、1707.95bnb、1959.03bnb在 pancakeswap 中兌換為47770bog,並用共計8434.07bnb和281174.22bog在 pancakeswap 的 bnb-bog 池中新增流動性
如下圖所示,攻擊者在該筆交易中透過以下5筆交易將如下所示數量的 wbnb 與 bog 新增流動性並將所獲得的流動性代幣進行抵押挖礦。
圖1新增流動性並進行你抵押挖礦為多次轉賬準備
隨後,攻擊者透過攻擊合約多次進行自我轉賬,進行獲利。
圖2反覆自我轉賬
最後,攻擊者透過 nerve(angswap)跨鏈橋將它們分批次轉換為 eth 進行套現後移除流動性,返還閃電貸完成本次攻擊。
圖3移除流動性
圖4返還閃電貸
在攻擊發生後,專案社羣內疑似管理員身份釋出了相關通知,且現合約中已關停相關手續費收取功能,對應的 _burnrate 被設定為 0,不存在套利空間。
圖5社群通知
圖6關閉手續費收取功能
最近 bsc 鏈上接連發生閃電貸攻擊事件,隨著鏈上 defi 生態的飛速發展,攻擊事件頻頻爆發。高階複雜的閃電貸攻擊手法,已經在以太坊生態中上演過很多次。可見,隨著其他鏈上 defi 生態的發展,攻擊者已逐漸將攻擊目標擴大到其他鏈的 defi 生態,defi 安全問題也越來越需要被重視。
知道創宇區塊鏈安全實驗室官網:www.knownseclab.com
知道創宇唯一指定存證平臺:www.attest.im
聯絡我們:[email protected]
知道創宇區塊鏈安全實驗室導航
微信公眾號
@ 創宇區塊鏈安全實驗室
微博
@ 知道創宇區塊鏈實驗室
https://weibo.com/blockchainlab
知乎
@ 知道創宇區塊鏈安全實驗室
https://www.zhihu.com/org/zhi-dao-chuang-yu-qu-kuai-lian-an-quan-shi-yan-shi
twitter
@ks_blockchain_
https://twitter.com/ks_blockchain