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

robot
摘要生成中

OrionProtocol遭受重入攻擊事件分析

2023年2月2日下午,以太坊和幣安智能鏈上的OrionProtocol項目因合約漏洞遭受重入攻擊。攻擊者共獲利約290萬美元,其中包括以太坊鏈上的2,844,766 USDT和幣安智能鏈上的191,606 BUSD。

攻擊過程分析

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

在執行swapThroughOrionPool方法時,由於攻擊者的Token合約中包含回調功能,導致在轉帳過程中觸發了重入攻擊。攻擊者利用Token.Transfer方法反復調用ExchangeWithAtomic.depositAsset函數,使存款金額不斷累加。最終,攻擊者通過提款操作完成了獲利。

OrionProtocol 重入攻擊分析附PoC

資金流向

據鏈上數據顯示,攻擊者的初始資金來自某交易平台的熱錢包。獲利的1,651個ETH中,657.5個仍留在攻擊者的錢包地址,其餘已通過混幣服務進行了轉移。

OrionProtocol 重入攻擊分析附PoC

漏洞分析

漏洞的核心在於ExchangeWithAtomic合約的doSwapThroughOrionPool函數。該函數在執行_doSwapTokens操作時,存在邏輯缺陷。具體來說,代碼在執行轉帳後才更新curBalance變量,這爲重入攻擊創造了條件。

攻擊者通過在自定義Token的transfer函數中添加回調邏輯,反復調用depositAsset函數,導致curBalance更新錯誤。最終,攻擊者在償還閃電貸後,調用withdraw函數提走超額資金。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

防範建議

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

  1. 在實現代幣兌換功能時,需全面考慮各種Token類型和兌換路徑可能帶來的安全風險。

  2. 嚴格遵循"檢查-生效-交互"(Checks-Effects-Interactions)的編碼模式,即先進行條件檢查,然後更新狀態變量,最後才執行外部調用。

  3. 增強對外部調用的安全控制,特別是在處理用戶自定義Token時。

  4. 定期進行代碼審計和安全測試,及時發現並修復潛在漏洞。

  5. 使用成熟的安全庫和最佳實踐,如OpenZeppelin的SafeERC20等。

通過採取這些措施,可以大大降低智能合約被攻擊的風險,提高項目的整體安全性。

TOKEN0.64%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 轉發
  • 分享
留言
0/400
ser_ngmivip
· 17小時前
又没钱了
回復0
假装在读白皮书vip
· 18小時前
天天出事 还搞啥
回復0
Liquidity_Wizardvip
· 18小時前
跑路预定~
回復0
degenonymousvip
· 18小時前
韭菜又被收割咯
回復0
破产_倒计时vip
· 18小時前
又一个蹦了
回復0
无聊猿反抗军vip
· 18小時前
又是合约漏洞 吃撑了
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)