OrionProtocol遭2.9億重入攻擊 資金已部分流入混幣服務

robot
摘要生成中

OrionProtocol遭受重入攻擊事件分析

2023年2月2日下午,OrionProtocol在以太坊和幣安智能鏈上因合約漏洞遭受重入攻擊,總損失約290萬美元。具體損失包括以太坊鏈上2,844,766 USDT和幣安智能鏈上191,606 BUSD。

攻擊過程分析

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

在兌換過程中,攻擊者利用自定義Token合約的回調功能,通過Token.Transfer方法重復調用ExchangeWithAtomic.depositAsset函數,導致存款金額不斷累加。最終,攻擊者通過取款操作完成了獲利。

OrionProtocol 重入攻擊分析附PoC

資金流向

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

OrionProtocol 重入攻擊分析附PoC

漏洞分析

核心問題出在doSwapThroughOrionPool函數中。該函數調用了_doSwapTokens函數,在進行代幣轉帳後更新curBalance變量。攻擊者通過在自定義Token的transfer函數中添加回調邏輯,調用depositAsset函數,導致curBalance更新錯誤。攻擊者隨後在償還閃電貸後調用withdraw函數提取資金,完成攻擊。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

攻擊復現

攻擊者通過創建自定義ERC20代幣合約,並利用某DEX的閃電貸功能進行攻擊。主要步驟包括:

  1. 創建自定義Token並與USDC、USDT建立交易對
  2. 準備初始資金並提供流動性
  3. 調用ExchangeWithAtomic合約的depositAsset和swapThroughOrionPool函數
  4. 在自定義Token的transfer函數中添加回調邏輯
  5. 最終通過withdraw函數提取獲利資金

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

安全建議

爲避免類似攻擊,項目方應注意以下幾點:

  1. 合約設計中需考慮多種Token和兌換路徑可能帶來的安全風險
  2. 遵循"先檢查、後生效、再交互"(Checks-Effects-Interactions)的編碼規範
  3. 實施全面的安全審計,特別關注重入攻擊風險
  4. 考慮使用重入鎖等安全機制
  5. 定期進行合約漏洞掃描和安全性評估

此事件再次強調了智能合約安全的重要性,項目方應持續關注和改進其安全措施,以保護用戶資產和維護平台信譽。

TOKEN2.88%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 5
  • 分享
留言
0/400
社区混子王vip
· 9小時前
又是智能合约漏洞 醒醒吧
回復0
永远的空投F5哥vip
· 07-29 00:33
套现走起 又有新目标了~
回復0
ProbablyNothingvip
· 07-29 00:28
合约还能再烂点不
回復0
破产倒计时vip
· 07-29 00:24
又一家完犊子了
回復0
稳定币焦虑症vip
· 07-29 00:13
哎哟 又来一个裁判式黑客
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)