前言
8月17日,BSC鏈上的XSURGE協議遭到閃電貸攻擊,損失超過500萬美元。對此,知道創宇區塊鏈安全實驗室對攻擊流程和代碼細節進行了全盤梳理。
全盤梳理
基礎信息
-攻擊tx:0x7e2a6ec08464e8e0118368cb933dc64ed9ce36445ecf9c49cacb970ea78531d2-攻擊合約:
0x1514AAA4dCF56c4Aa90da6a4ed19118E6800dc46
The Block研究員:Delphi Digital一錢包地址上周末向Coinbase轉入60萬枚AXS,錢包清零:6月28日消息,據The Block研究員@Dogetoshi的推文,上周末, Delphi Digital向Coinbase轉入了60萬枚AXS(約900萬美元),清空了他們的錢包。在高峰期,錢包中的全部資產價值9500萬美元。
此外,@Dogetoshi發現,28天前,Delphi的一個AXS歸屬地址(0x9E7…)發送了15萬枚AXS到0x820開頭的地址,0x820開頭的地址將這些資金送到了三箭資本的旗下場外交易公司TPS Capital。
此前5月份消息,Delphi Digital披露Delphi Ventures在Terra危機中損失1000萬美元。[2022/6/29 1:38:02]
-SurgeToken:
XSURGE官方在遭遇攻擊前披露SurgeBNB合約存在漏洞,隨后不久遭攻擊損失500萬美元:歸屬社區的DeFi項目XSURGE今日遭遇閃電貸攻擊,XSURGE官方在遭攻擊前發布了關于SurgeBNB漏洞的聲明。XSURGE表示,當地時間8月16日發現了SurgeBNB合約的潛在安全漏洞。由于SurgeBNB合約不可更改且已被放棄,因此無法追溯修補該代幣。XSURGE稱沒有透露任何關于此漏洞性質的具體細節,但強烈建議用戶盡快遷移出SurgereBnb,因為該漏洞隨時都可能被攻擊者觸發。XSURGE官方決定將風險公開通知所有持有人。
在聲明發布后,XSURGE隨后便表示遭遇攻擊,攻擊者是通過后門漏洞在SurgeBNB中竊取了500萬美元。由于SurgeUSD或SurgeETH不提取BNB,因此它們不能成為未來攻擊的目標。
此前消息,PeckShield:XSURGE遭到閃電貸攻擊。[2021/8/17 22:19:13]
0xE1E1Aa58983F6b8eE8E4eCD206ceA6578F036c21
AXS 24小時資金凈流入8.99億元人民幣:金色財經監測數據顯示,加密貨幣市場24小時資金凈流入排名前三分別為[2021/7/28 1:19:15]
攻擊流程
這里有個小細節,代幣轉移流程中的順序是按照事件先后順序來顯示的,而重入之后的買操作引起的事件會在賣操作引起的事件之前,所以在流程中看到的每一個單獨的重入攻擊中是SURGE的買入發生在賣出之前。
漏洞原理
漏洞點在于SurgeToken合約中的sell()函數,其中對調用者msg.sender的BNB轉賬采用的call()函數,并且在轉賬之后才更新代幣總量_totalSupply,是典型的重入漏洞場景。
雖然sell()函數使用了nonReentrant修飾防止了重入,但purchase()函數并沒有。重入轉回BNB給合約,觸發fallback函數調用purchase(),由于_totalSupply尚未減去賣出量,而導致可買入相較正常更多的SURGE代幣。
復現
價格分析
sell()函數賣出過程中,輸入tokenAmount與輸出amountBNB的關系:
purchase()函數買入過程中,輸入bnbAmount與輸出tokensToSend的關系:
在重入過程中,sell()函數賣出后獲得的BNB通過重入打回SurgeToken合約傳入purchase()函數故令sell()函數的輸出amountBNB與purchase()函數的輸入bnbAmount相等,可得到整個利用流程中輸入與輸出的關系:
若要實現套利,需要輸出大于輸入,則有:
最后得到:
也就是說重入套利過程中調用sell()賣出的代幣量必須在代幣總量的12.383%以上
模擬演示
為方便調試,將SurgeToken合約中的mint()函數可見性改為public,并為構造函數增加payable修飾,在部署時傳入10^15wei。
SurgeToken合約初始化的代幣總量為10^9,根據前面推導出的結論,為攻擊合約鑄幣200000000,則攻擊合約擁有大約SURGE代幣總量16%的代幣。
攻擊合約調用Attack()函數攻擊,查看攻擊合約的代幣余額已變為209549307,獲利9549307。
總結
XSURGE協議被攻擊的本質原因在于sell()函數中存在重入漏洞,導致可通過purchase函數買入較多的SURGE代幣而獲利。
簡而言之,典型的重入漏洞場景,教科書級的案例。
尊敬的用戶: Huobi?Global致力于推動區塊鏈行業健康發展,保護用戶合法權益,鑒于BCX、BIFI、SBTC通證觸發《火幣通證管理規則》第十九條的規定.
1900/1/1 0:00:0010月8日,加密風投機構DivergenceVentures被指在它投資的DeFi項目RibbonFinance的空投活動中不當得利.
1900/1/1 0:00:00親愛的BitMart用戶:BitMart將于2021年10月15日上線代幣UltiArena(ULTI)。屆時將開通ULTI/USDT交易對.
1900/1/1 0:00:00作者:LucaProsperi文章翻譯:Blockunicorn9月30日,LucaProsperi在DirtRoads上發表一篇名為Full-StackCentralBanking《全棧中央銀.
1900/1/1 0:00:00此前,Gate.io已開啟RARE/USDT交易對新版流動性礦池,目前上述交易對流動性充足、交易活躍,Gate.io已將上述交易對從AMM流動性池模式恢復到正常交易模式恢復常規模式后.
1900/1/1 0:00:00親愛的用戶:為回饋在幣安NFT市場交易NFT的新老用戶, 幣安NFT市場 特別推出本次活動。符合條件的用戶將瓜分500個NFT盲盒獎勵.
1900/1/1 0:00:00