OrionProtocol遭重入攻擊 損失290萬美元USDT和BUSD

OrionProtocol重入攻擊事件分析

2023年2月2日,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操作時,先進行轉帳,然後更新curBalance變量。攻擊者通過在自定義Token的transfer函數中添加回調邏輯,導致curBalance更新錯誤。這使得攻擊者能夠在償還閃電貸後,通過withdraw函數提取超額資金。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

防範建議

  1. 合約設計應遵循"檢查-生效-交互"(Checks-Effects-Interactions)模式,先更新狀態變量,再進行外部調用。

  2. 實現重入鎖等防重入機制。

  3. 對於涉及代幣兌換的功能,需全面考慮各種Token類型和兌換路徑可能帶來的安全隱患。

  4. 加強代碼審計,特別關注涉及資金操作的關鍵函數。

  5. 考慮引入交易金額限制或時間鎖等額外安全措施。

  6. 定期進行安全評估和滲透測試,及時發現並修復潛在漏洞。

本次事件再次凸顯了智能合約安全的重要性。項目方應持續關注合約安全,採取多重防護措施,最大限度降低安全風險。

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 6
  • 分享
留言
0/400
NewPumpamentalsvip
· 07-11 03:48
天天被攻击跑路
回復0
Hodl信仰者vip
· 07-08 12:16
典型的合约隐患
回復0
0xSoullessvip
· 07-08 08:06
重入永远是痛点
回復0
币圈纸手姐vip
· 07-08 08:03
踏空姐今天暴哭了
回復0
空投猎手小明vip
· 07-08 08:02
又是重入攻击事故
回復0
链上小透明vip
· 07-08 07:55
又一家被薅羊毛
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)