前言
8月17日,BSC鏈上的XSURGE協議遭到閃電貸攻擊,損失超過500萬美元。對此,知道創宇區塊鏈安全實驗室對攻擊流程和代碼細節進行了全盤梳理。
全盤梳理
基礎信息
-攻擊tx:0x7e2a6ec08464e8e0118368cb933dc64ed9ce36445ecf9c49cacb970ea78531d2-攻擊合約:
0x1514AAA4dCF56c4Aa90da6a4ed19118E6800dc46
-SurgeToken:
0xE1E1Aa58983F6b8eE8E4eCD206ceA6578F036c21
加密基金DeFi Wonderland發布全面整改SushiSwap的提案,包括提議棄用xSUSHI模型:4月21日消息,加密基金DeFi Wonderland發布全面整改SushiSwap的提案,提案的內容包括棄用xSUSHI并將本屬于xSUSHI的收益轉移至SushiDAO;提高透明度,包括公布財務路線圖、公開預算和支出信息、公開多簽錢包轉移資金至財庫的數據;財庫資產多元化;組件技術工作組、生態增長工作組、多鏈工作組、研發工作組四個團隊分管SushiSwap的各項發展事務;啟用veSUSHI代幣經濟模型;添加去中心化前端;擴展至非EVM網絡。
DeFi Wonderland表示,他們希望 SushiSwap提供500萬枚SUSHI來支持他們的行動,代幣的釋放依據SUSHI價格是否達到既定目標來判定。[2022/4/21 14:38:10]
0xSifu再次轉移1000枚ETH至TornadoCash:2月2日消息,Frog Nation 前 CFO 0xSifu 再次轉移 1000 枚 ETH 至以太坊隱私交易平臺 TornadoCash 中。據鏈上數據,0xSifu 從 2 月 1 日晚間至今,已轉移 3100 枚 ETH 到 TornadoCash 中。[2022/2/2 9:27:25]
攻擊流程
這里有個小細節,代幣轉移流程中的順序是按照事件先后順序來顯示的,而重入之后的買操作引起的事件會在賣操作引起的事件之前,所以在流程中看到的每一個單獨的重入攻擊中是SURGE的買入發生在賣出之前。
動態 | NPXS持續活躍 在ERC20代幣活躍地址數中排名首位:據TokenGazer數據分析顯示,2月11日ERC20代幣中活躍地址數排名前五的代幣是:NPXS,BAT,ZRX,OMG,MKR;活躍地址數增長速度排名前五的代幣是:MED,FOTA,AUTO,STACS,QNTU。[2019/2/12]
漏洞原理
漏洞點在于SurgeToken合約中的sell()函數,其中對調用者msg.sender的BNB轉賬采用的call()函數,并且在轉賬之后才更新代幣總量_totalSupply,是典型的重入漏洞場景。
聲音 | fxstreet分析師:持倉者應留意未來一周行情以調整倉位:據fxstreet分析師分析,比特幣在上周一開始就試探到了最近的低點,在6154.00附近觸底。到目前為止,比特幣一直處于平衡狀態,無法突破目前6230.00附近的上限,因為買家阻止比特幣進一步上漲。持倉者應留意未來一周的牛市行情,以調整倉位,然后再回到穩定的空頭倉位,這是自8月中旬以來BTC/USD的常見走勢。[2018/10/15]
雖然\nsell()函數使用了nonReentrant修飾防止了重入,但purchase()函數并沒有。重入轉回BNB給合約,觸發\nfallback函數調用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代幣而獲利。
簡而言之,典型的重入漏洞場景,教科書級的案例。
項目全稱:MarsInu項目標簽:NFT、幣安智能鏈生態項目官網:https://marsinu.com/信用評分:評分為3.
1900/1/1 0:00:00區塊鏈和游戲是一個很好的組合,可以為開發者和玩家創造價值,尤其游戲行業一直因商業模式和做法可疑而備受詬病.
1900/1/1 0:00:00NFT,概述: 由于非同質代幣在2020年末和2021年初迅速成為主流,大多數人將NFT與像素化的Twitter頭像、曲線和巖石JPEG聯系起來。最成功和最著名的NFT項目創造了數字藝術市場.
1900/1/1 0:00:00吳說作者|ColinWu本期編輯|ColinWu 1. 國家發改委回應虛擬貨幣挖礦內容:研究加征懲罰性電價11月16日發改委新聞發布會回答記者提問時指出:首先需要明確的是.
1900/1/1 0:00:00加入PolkaWorld社區,共建Web3.0! 9月8日下午16:21左右,Kusama網絡的第六個平行鏈插槽拍賣結束!KILT以鎖定219.
1900/1/1 0:00:00相關閱讀:專題|Messari2022年加密行業深度研報原文來自Messari,原文標題為《CryptoThesesfor2022》.
1900/1/1 0:00:00