捲土重來?黑客獲利約130萬美元FEGexPRO合約被攻擊事件分析

2022年5月16日,成都鏈安鏈必應-區塊鏈安全態勢感知平台輿情監測顯示,Ethereum和BNB Chain上FEGtoken項目的FEGexPRO合約遭受黑客攻擊,黑客獲利約3280 BNB 以及144 ETH,價值約130萬美元。成都鏈安技術團隊對事件進行了分析,結果如下。

事件相關信息

本次攻擊事件包含多筆交易,部分交易信息如下所示:

攻擊交易 (部分)

0x77cf448ceaf8f66e06d1537ef83218725670d3a509583ea0d161533fda56c063 (BNB Chain)

0x1e769a59a5a9dabec0cb7f21a3e346f55ae1972bb18ae5eeacdaa0bc3424abd2 (Ethereum)

攻擊者地址

0x73b359d5da488eb2e97990619976f2f004e9ff7c

攻擊合約

0x9a843bb125a3c03f496cb44653741f2cef82f445

被攻擊合約(部分)

0x818e2013dd7d9bf4547aaabf6b617c1262578bc7 (BNB Chain)

0xf2bda964ec2d2fcb1610c886ed4831bf58f64948 (Ethereum)

攻擊流程

Ethereum和BNB Chain上使用攻擊手法相同,以下分析基於BNB Chain上攻擊:

1. 攻擊者調用攻擊合約(0x9a84…f445)利用閃電貸從DVM合約(0xd534…0dd7)中藉貸915.84 WBNB,然後將116.81 WBNB兌換成115.65 fBNB為後續攻擊做準備。

2. 攻擊者利用攻擊合約創建了10個合約,為後續攻擊做準備。

3. 攻擊者接下來將兌換得到的fBNB代幣抵押到FEGexPRO合約(0x818e…8bc7)中。

4. 然後攻擊者重複調用depositInternal和swapToSwap函數,讓FEGexPRO合約授權fBNB給之前創建好的其他攻擊合約。

5. 然後利用其他攻擊合約調用transferFrom函數將FEGexPRO合約中fBNB全部轉移到攻擊合約(0x9a84…f445)中。

6. 接下來又在LP交易對合約(0x2aa7…6c14)中藉貸31,217,683,882,286.007211154 FEG代幣和423 WBNB。

7. 然後重複3、4、5步驟的攻擊手法,將FEGexPRO合約中大量FEG代幣盜取到攻擊合約中。

8. 然後歸還閃電貸,將獲得的WBNB轉入攻擊合約中完成此筆攻擊。

9. 此後,又利用相同的原理,執行了50餘筆相同的攻擊,最獲利約144 ETH和3280 BNB。

漏洞分析

本次攻擊主要利用了FEGexPRO合約中swapToSwap函數中path地址可控且合約中未對path地址進行有效性校驗的漏洞。由於合約中depositInternal函數中更新用戶餘額時依賴於合約中當前代幣餘額,攻擊者通過傳入一個惡意的path地址,調用swapToSwap函數時合約中代幣餘額並未發生變化,導致攻擊者可以反復重置攻擊合約在FEGexPRO合約中記錄的代幣數量,從而讓FEGexPRO合約將自身代幣反复授權給攻擊者所控制的多個惡意合約。

資金追踪

截止發文時,被盜資金仍在攻擊者地址(0x73b3…ff7c)中並未轉移。

總結

針對本次事件,成都鏈安技術團隊建議:

項目開發時,應該注意與其他合約交互時可能存在的安全風險,盡量避免將關鍵參數設置為用戶可控。如果業務需求如此,則需要嚴格判斷用戶輸入的參數是否存在風險。此外建議項目上線前選擇專業的安全審計公司進行全面的安全審計,規避安全風險。

Total
0
Shares
Related Posts