甜蜜一擊?誰是幕後黑手?BSC 鏈上 XSURGE 遭閃電貸攻擊全解析

買賣虛擬貨幣

8月17日,鏈必安-區塊鏈安全態勢感知平臺(Beosin-Eagle Eye)輿情監測顯示,BSC鏈上DeFi協議XSURGE遭到閃電貸攻擊,攻擊者利用合約的重入漏洞獲利超過13111BNB。關於本次攻擊,成都鏈安技術團隊第一時間進行了事件分析。

#1事件概覽

攻擊如何發生 Event overview

DeFi專案XSURGE今日遭遇閃電貸攻擊,不過在XSURGE在遭攻擊前,官方釋出了關於SurgeBNB漏洞的宣告。

XSURGE表示,當地時間8月16日發現了SurgeBNB合約的潛在安全漏洞。由於SurgeBNB合約不可更改且已被放棄,因此無法追溯修補該代幣。XSURGE沒有透露任何關於此漏洞性質的具體細節,但強烈建議使用者儘快遷移出SurgereBnb,因為該漏洞隨時都可能被攻擊者觸發。

說時遲那時快,在宣告發布後,XSURGE隨後便表示遭遇攻擊,這甜蜜一擊讓專案方防不勝防。官方稱,攻擊者透過後門漏洞在SurgeBNB中竊取了500萬美元。由於SurgeUSD或SurgeETH不提取BNB,因此它們不能成為未來攻擊的目標。

回到本次閃電貸攻擊,讓我們看看這一次的攻擊者是如何實現「空手套白狼」的。

#2事件具體分析

攻擊者如何得手Event overview

攻擊者地址:

0x59c686272e6f11dC8701A162F938fb085D940ad3

攻擊合約

以交易

0x8c93d6e5d6b3ec7478b4195123a696dbc82a3441be090e048fe4b33a242ef09d為例

round 0

先透過閃電貸借出10,000BNB。

Round 1

用所有的的BNB去購買SURGE,根據當前價格,能買到1,896,594,328,449,690 SURGE。

獲取的SURGE

Round 2

呼叫sell函式賣出所獲得的SURGE,賣出了9346個BNB。

Round 3

因為sell函式是先轉賬後修改資料,且轉賬程式碼中存在重入漏洞。在攻擊合約收到BNB時,SURGE合約的狀態改變前(第595行程式碼),攻擊合約可透過重入漏洞再次購買SURGE。

由於攻擊合約每次都將所有BNB餘額用於購買SURGE,合約的bnbAmount不變,而SURGE的代幣總量_totalSupply未更新(仍為sell之前的數量),因此SURGE價格降低,導致攻擊者可以買到更多的SURGE。

Round 4

重複3次Round2、Round3,攻擊者透過重入累積了大量的SURGE,之後將所有的SURGE全部賣出便可以獲利。

這筆交易的最後,攻擊合約賣了1,864,120,345,279,610,000 SURGE,獲得了10327 BNB,最後將獲利的297 BNB傳送給攻擊者地址。

#3事件覆盤

我們需要注意什麼 Case Review

對於本次攻擊事件,成都鏈安技術團隊給出的修改建議為:1.為防止重入攻擊,任何轉賬操作都應該發生在狀態改變後;2.使用transfer或send進行轉賬,不要使用call.value。

在此類安全事件中,攻擊者通常屬於「空手套白狼」,先使用閃電貸獲取大量資金,擁有了攻擊的啟動「砝碼」後,再透過一系列手段出入各類抵押、借貸、交易等協議,在實現操縱、扭曲資產價格資料後,實施套利,最後歸還「本金」。

🌀注意🌀

本次事件,攻擊者利用合約的重入漏洞獲利超過13111BNB,成都鏈安在此提醒各位使用者注意風控,比如在官方釋出關於SurgeBNB漏洞的宣告後,要及時採取相應措施。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读