全球数字财富领导者

OrionProtocol 重入攻击分析附Poc

2023-02-03 18:21:52
金色财经
金色财经
关注
0
0
获赞
粉丝
喜欢 20 0收藏举报
— 分享 —
摘要:根据NUMEN链上监控显示,Feb-02-2023 03:40:20 PM +UTC,Ethereum和Binance链上OrionProtocol以为合约漏洞

QlpWSurIKKfLLnbitPUJYzyMH8Fdtt2Re8UhqLXX.jpeg

事件背景 

根据NUMEN链上监控显示,Feb-02-2023 03:40:20 PM +UTC,Ethereum和Binance链上OrionProtocol以为合约漏洞遭到重入攻击,损失1,651枚ETH(Ethereum)和191,030枚USD(Binance),价值约290万美元。 

Ethereum链过程分析: 

攻击者地址:0x837962b686fd5a407fb4e5f92e8be86a230484bd 

攻击者合约:0x5061f7e6dfc1a867d945d0ec39ea2a33f772380a 

攻击交易:0xa6f63fcb6bec8818864d96a5b1bb19e8bd85ee37b2cc916412e720988440b2aa 

ppiGZFrwPNCJv2Ws2NgL6vHdxJ1F3KQvbnGYCGTF.png

攻击分析

攻击者首先创建Token合约(0x64acd987a8603eeaf1ee8e87addd512908599aec),并对Token进行转移及授权,为后续攻击做准备。 

rHrcCy2ZnVV70hzllmnKhNx3WwxMFbUIq0jw2OHz.png

攻击者通过UNI-V2.swap方法借款并调用ExchangeWithAtomic.swapThroughOrionPool方法进行代币兑换,兑换路径为 

path=[USDC, 0x64acd987a8603eeaf1ee8e87addd512908599aec,USDT] 

路径0x64ac…0aec是攻击者创建的Token合约,攻击者将使用该合约进行回调。 

bDQH8pC3ORt6JqroIyjTnHxFk4FTJn0zLkmg0I0i.png

调用ExchangeWithAtomic.swapThroughOrionPool方法兑换时,由于攻击者创建的Token合约存在回调,所以攻击者通过Token.Transfer继续回调ExchangeWithAtomic.depositAsset进行重入让存款金额累加,随后取款完成获利。 

HiwnLow2CpfypcFcgmOYG4Axu069vqZzPgmr4Hzd.png

资金流向 

黑客初始资金来自于币安热钱包账户,获利的1651枚ETH其中还657.5枚还留在钱包地址中,其余的已经通过Tornado.Cash进行转移。  

hRFIfSp3LoW14CwfbaDO1M3x6soatbRQZb3d7NRS.png

漏洞核心

关键问题在doSwapThroughOrionPool函数 

合约地址:https://etherscan.io/address/0x420a50a62b17c18b36c64478784536ba980feac8#code 

Esfdo32zOMYNooV5CsK0Mkia9aAzLYaxNI7KLMGC.png
  

然后跟进到_doSwapTokens函数。 

aXU8wUYtO3i8Ga3jklmWdD9mpHjUKlXlbsXwi3F0.png

看到转账发生之后更新curBalance,所以在faketoken的transfer新增一个回调功能,回调代码就是调用depositAsset函数,所以导致curBalance错误更新,然后攻击者在还完闪电贷之后调用withdraw提走资金 。 

攻击复现

部分POC代码:

342W5iBtFzNvfDCyorwG7h0QiGGFhRjvrx5PbNge.png

测试结果 

 

pqCMnIZOyoGhJpT2YIMj3dSx2HRZl3o9bn5cSwVT.png

 

EbfxKNUgYgs5b5XaR52bz2r30lYuRAWEbXkRwwGV.png

和调用栈结果一致。 

完整poc链接: 

https://github.com/numencyber/SmartContractHack_PoC/tree/main/OrionProtocolHack 

总结

NUMEN实验室提醒项目方,合约存在兑换功能时,需要考虑多种Token以及多种兑换路径出现的意外情况,并且对于合约代码逻辑遵循先判断,后写入变量,再进行外部调用的编码规范(Checks-Effects-Interactions)会使项目更加安全稳定。保障合约风险尽可能被消除在链下,NUMEN专注于为web3生态安全保驾护航。 

来源:金色财经

1. 欢迎转载,转载时请标明来源为FX168财经。商业性转载需事先获得授权,请发邮件至:media@fx168group.com。
2. 所有内容仅供参考,不代表FX168财经立场。我们提供的交易数据及资讯等不构成投资建议和依据,据此操作风险自负。
go