2024年3月5日,Woo Finance部署在Arbitrum上的合约遭受闪电贷攻击,损失约850万美元。此前,2月23日,Woo Finance部署在Ethereum上的合约就曾被攻击,损失约3,891美元,很显然黑客团队将Woo Finance作为攻击目标进行了系统化的漏洞挖掘,非常可惜Woo Finance没有能及时对多链合约的安全性进行全面检查,没能阻止这次攻击。
SharkTeam对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
一、攻击交易分析
攻击者地址:
0x9961190b258897bca7a12b8f37f415e689d281c4
攻击合约:
0x1759f791214168e0292ab6b2180da1c4cf9b764e
0xc3910dca5d3931f4a10261b8f58e1a19a13e0203
0xd4c633c9a765bc690e1fba566981c1f4eab52df0
0x66634590d7d631e3bf85ef4cd6c89ca7479e22bc
0x27a116a48c6dd23fc005ea6ea02847723d5b3856
0x2458464afec10e973ac61860718328ce8358be3a
被攻击合约:
0xeff23b4be1091b53205e35f3afcd9c7182bf3062
攻击交易:
0x57e555328b7def90e1fc2a0f7aa6df8d601a8f15803800a5aaf0a20382f21fbd
0x40e1b8c78083fc666cb7598efcecd0ae0af313fc41441386e4db716c2808ce07
0xe80a16678b5008d5be1484ec6e9e77dc6307632030553405863ffb38c1f94266
攻击流程:
1. 以第一笔攻击交易为例,攻击合约(0x1759f791)通过闪电贷借取10580749枚USDC.e代币和2704558枚WOO代币。
2. 后通过在Silo合约中抵押7000000枚USDC.e代币,借出了5092663枚WOO代币,再将2000000枚USDC.e代币兑换成了WETH。
3. 攻击合约(0x1759f791)将100000枚USDC.e兑换为173684枚WOO,并略微抬高WOO的价格。
4. 攻击合约(0x1759f791)用7856868枚WOO代币在被攻击合约(0xeff23b4b)中兑换为2246892枚USDC.e,并将合约中WOO代币的价格从578535. 在价格被更改后,攻击合约(0x1759f791)仅用0.9枚USDC.e就换出了10232908枚WOO。
5. 在价格被更改后,攻击合约(0x1759f791)仅用0.9枚USDC.e就换出了10232908枚WOO。
6. 攻击合约(0x1759f791)归还silo中借出的WOO代币提出抵押的USDC.e代币并归还闪电贷函数,最后获利559枚ETH和2549710枚WOO。
攻击的本质是合约的价格计算式中参数可以被黑客操控,导致WOO代币的价格被操纵。被攻击合约(0xeff23b4b)中_calcQuoteAmountSellBase对价格进行计算时逻辑出现漏洞。
价格计算式中的baseAmount以及state.price都可以被操控,攻击者(0x9961190b)在第三步时抬高了一些stake.price,第四步使用大量WOO代币进行兑换,导致baseAmount参数很大,由于红框中计算的结果作为减数存在,所以当红框计算结果越大,newPrice参数越小,使得兑换结束后price值被设定为了9。价格比例严重失衡,使用极少USDC.e即可换出大量WOO代币。
针针对本次攻击事件,我们在开发过程中应注意以下事项:
1. 开发者在设计价格计算式时,应严格考虑参数是否会被操控的问题。
2. 项目上线前,需要通过专业的第三方审计团队进行智能合约审计。
About Us
SharkTeam的愿景是保护Web3世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约底层理论。提供包括风险识别与阻断、智能合约审计、KYT/AML、链上分析等服务,并打造了链上智能风险识别与阻断平台ChainAegis,能有效对抗Web3世界的高级持续性威胁(Advanced Persistent Threat,APT)。已与Web3生态各领域的关键参与者,如Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land等建立长期合作关系。
官网:https://www.sharkteam.org
Twitter:https://twitter.com/sharkteamorg
Telegram:https://t.me/sharkteamorg
Discord:https://discord.gg/jGH9xXCjDZ
All Comments