零時科技 || BXH攻擊事件分析

0x1 事件背景

零時科技區塊鏈安全情報平台監控到消息,北京時間2022年9月29日,BXH合約遭到黑客攻擊,損失超40,085 BUSD, 零時科技安全團隊及時對此安全事件進行分析。

零時科技 || BXH攻擊事件分析

0x2 攻擊信息

  • 攻擊者地址:

0x81c63d821b7cdf70c61009a81fef8db5949ac0c9

  • 攻擊者合約地址:

0x4e77df7b9cdcecec4115e59546f3eacba095a89f

  • 被攻擊合約地址:

0x27539b1dee647b38e1b987c41c5336b1a8dce663

0x3 攻擊步驟

1. 調用deposit()函數向合約轉移5,582 VUSDT

零時科技 || BXH攻擊事件分析

2. 攻擊者通過閃電貸借出3,178,800 BUSD

零時科技 || BXH攻擊事件分析

3. 將3,148,800 BUSD 兌換為148,851 BXHToken

零時科技 || BXH攻擊事件分析

4. 向被攻擊合約轉移200BUSD

零時科技 || BXH攻擊事件分析

5. 調用depositIToken函數中getITokenBonusAmount()函數,計算得到40,085 BUSD獎勵

零時科技 || BXH攻擊事件分析

6. 將兌換得到的BXHToken 兌換為BUSD 並歸還閃電貸

零時科技 || BXH攻擊事件分析

0x4 漏洞核心

攻擊者通過閃電貸借出大量BUSD,兌換為BXHToken,使得池子中BUSD 瞬間增大,在計算獲得的獎勵時由於會與BUSD數量做乘法,使得獲得獎勵也會成倍增加。

零時科技 || BXH攻擊事件分析

0x5 資金流向

兌換為BNB 轉移至混幣平台

零時科技 || BXH攻擊事件分析
零時科技 || BXH攻擊事件分析

0x6 總結及建議

此次攻擊主要原因是在計算獎勵時會與池子中BUSD的數量相乘,當池子中USDT數量增加時,獲得的獎勵相應增加。攻擊者通過閃電貸向池子中轉移大量BUSD,使得計算出的獎勵增加從而獲利。

安全建議

  • 建議計算中涉及數值引用及乘除法計算時詳細檢查,避免出現計算數值受引用數值較大影響的情況發生。
  • 建議項目方上線前進行多次審計,避免出現審計步驟缺失。
零時科技 || BXH攻擊事件分析