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. 定期进行合约漏洞扫描和安全性评估

此事件再次强调了智能合约安全的重要性,项目方应持续关注和改进其安全措施,以保护用户资产和维护平台信誉。

TOKEN-3.76%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 4
  • 分享
评论
0/400
永远的空投F5哥vip
· 8小时前
套现走起 又有新目标了~
回复0
ProbablyNothingvip
· 8小时前
合约还能再烂点不
回复0
破产倒计时vip
· 8小时前
又一家完犊子了
回复0
稳定币焦虑症vip
· 9小时前
哎哟 又来一个裁判式黑客
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)