OrionProtocol遭重入攻擊 損失近290萬美元

robot
摘要生成中

OrionProtocol遭受重入攻擊事件分析

2023年2月2日下午3:40,以太坊和幣安智能鏈上的OrionProtocol因合約漏洞遭到重入攻擊,總損失約290萬美元,其中以太坊鏈上損失2,844,766 USDT,幣安智能鏈上損失191,606 BUSD。

攻擊過程分析

攻擊者首先部署了一個自定義Token合約,並進行了相關的轉移和授權操作,爲後續攻擊做準備。隨後,攻擊者通過UNI-V2的swap方法進行借款,並調用ExchangeWithAtomic合約的swapThroughOrionPool方法進行代幣兌換。兌換路徑設置爲[USDC, 攻擊者Token, USDT]。

在兌換過程中,由於攻擊者的Token合約中包含回調功能,導致在Token.Transfer過程中再次調用ExchangeWithAtomic.depositAsset方法,從而實現了重入攻擊。這使得存款金額被累加,最終攻擊者通過取款操作完成了獲利。

OrionProtocol 重入攻擊分析附PoC

資金流向

攻擊者的初始資金來自於某大型交易平台的熱錢包帳戶。攻擊獲利的1,651枚ETH中,657.5枚仍留在攻擊者的錢包地址,其餘已通過混幣服務進行轉移。

OrionProtocol 重入攻擊分析附PoC

漏洞分析

漏洞的核心在於ExchangeWithAtomic合約中的doSwapThroughOrionPool函數及其調用的_doSwapTokens函數。這些函數在執行Token轉帳後才更新curBalance變量,給了攻擊者利用重入攻擊的機會。

OrionProtocol 重入攻擊分析附PoC

攻擊者通過在自定義Token的transfer函數中添加回調邏輯,使其在轉帳過程中再次調用depositAsset函數。這導致了curBalance變量的錯誤更新,使攻擊者能夠在償還閃電貸後通過withdraw函數提取超額資金。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

安全建議

對於具有代幣兌換功能的項目,需要考慮以下幾點:

  1. 考慮多種Token和兌換路徑可能帶來的安全風險。
  2. 遵循"檢查-生效-交互"(Checks-Effects-Interactions)的編碼模式,即先進行狀態檢查,再更新合約狀態,最後與外部合約交互。
  3. 在執行關鍵操作時使用重入鎖或類似機制防止重入攻擊。
  4. 對外部調用的返回值進行嚴格檢查和處理。
  5. 定期進行代碼審計和安全測試,及時修復發現的漏洞。

通過採取這些措施,項目可以大大降低遭受類似攻擊的風險,提高合約的安全性和穩定性。

TOKEN3.28%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 4
  • 分享
留言
0/400
币圈资深幸存者vip
· 07-09 04:25
差不多得了 又一家毒瘤
回復0
GateUser-5854de8bvip
· 07-06 19:22
唉 又被薅羊毛了
回復0
幸存者谬误vip
· 07-06 19:21
又是合约漏洞呗...
回復0
椰子水男孩vip
· 07-06 19:08
代码审计都不做 活该亏钱
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)