{"content":{"title":"零时科技 || WOOFi 攻击分析","body":"![顶部banner2.jpg](https://img.learnblockchain.cn/attachments/2024/03/wT7M2NCu65f904fa89d12.jpg)\r\n\r\n# **背景介绍**\r\n<!--StartFragment-->\r\n\r\n2024年3月5日，我们监测到一笔arbitrum链上的异常交易：**https\\://arbiscan.io/tx/0xe80a16678b5008d5be1484ec6e9e77dc6307632030553405863ffb38c1f94266**\r\n\r\n经分析，我们发现是一次针对WOOFi的攻击事件，事件共造成约**900万美元的损失**。\r\n\r\nWOOFi是由WOO Network构建的一体化去中心化应用程序(DApp)。WOOFI旨在通过提供超低滑点、有竞争力的兑换费用以及其他有用功能，优化用户对去中心化金融(DeFi)的体验。\r\n\r\nWOOFi用户可兑换热门数字资产，还有机会通过质押和向网络提供流动性来赚取收入。WOOFi平台为DeFi用户打造的一大价值主张是深度流动性。\r\n\r\n本次受攻击的为WOOFi中的swap合约，合约地址为：**https\\://arbiscan.io/address/0xeff23b4be1091b53205e35f3afcd9c7182bf3062#code**\r\n\r\n<!--EndFragment-->\r\n\r\n# **攻击及事件分析**\r\n<!--StartFragment-->\r\n\r\n攻击者从Uniswap、TraderJoe中利用flashLoan获得攻击初始资金，共计10504796 USDC.e和2721172 WOO。\r\n\r\n<!--EndFragment-->\r\n\r\n![Pasted image 20240307163618.png](https://img.learnblockchain.cn/attachments/2024/03/nHeLKn3W65f9058503bca.png)\r\n\r\n随后，攻击者将借来的USDC.e在Slio Finance中抵押（共抵押7000000 USDC.e），借出5092663 WOO\r\n\r\n![2.png](https://img.learnblockchain.cn/attachments/2024/03/52Gw4jfB65f905e981829.png)\r\n\r\n接着，攻击者利用剩下的USDC.e通过WOOFi的swap功能，兑换为WOO，因此拉高WOO的价格\r\n\r\n![3.png](https://img.learnblockchain.cn/attachments/2024/03/NZhAm9qY65f905fdea250.png)\r\n\r\n经过3次swap操作，将WOO的价格由56884100拉高到了60400479，为后续的攻击创造了条件。\r\n真正的攻击发生在攻击者将WOO兑换为USDC.e时\r\n\r\n![4.png](https://img.learnblockchain.cn/attachments/2024/03/eLnVCym665f9061104bd8.png)\r\n\r\n可以看到，经过此次swap，WOO的价格变为了7，即0.00000007 USD。对比之前的价格暴跌了862万倍。\r\n通过查看合约代码我们发现，WOOFi合约中在进行将BaseToken兑换为QuoteToken时存在数据处理缺陷。\r\n\r\n![5.png](https://img.learnblockchain.cn/attachments/2024/03/VsAg36hm65f9062fc0960.png)\r\n\r\n我们看卖出BaseToken得到QuoteToken时，BaseToken的价格计算方法\r\nnewPrice = (1 - 2 * k * oracle.price * baseAmount) * oracle.price\r\n攻击者可以控制oracle.price和baseAmount，因为k值不变。攻击者可以通过多次swap操纵oracle.price即BaseToken的价格，并且可以操纵baseAmount。由这个公式可以看出，newPrice必定小于oracle.price。所以，攻击者可以控制oracle.price和baseAmount的组合，将newPrice操纵到极低。\r\n最后，攻击者利用小额的USDC.e兑换出了大量的WOO，归还借贷本金并套现。\r\n2天后，WOOFi官方人员与攻击者沟通，表示可以提供10%作为Whitehat奖金。不过截至发文时，攻击者还未归还被盗资金。\r\n\r\n![6.png](https://img.learnblockchain.cn/attachments/2024/03/CJThTSrv65f90656c986b.png)\r\n\r\n随后，官方修复了这个问题，可以看到，官方修复的方式就是取消了2倍的系数。https://github.com/woonetwork/WooPoolV2/commit/f5fe28acc77cf3801ac379db9bf99bb61b73ba17\r\n\r\n![7.png](https://img.learnblockchain.cn/attachments/2024/03/VfGv8rOG65f9068084d99.png)\r\n\r\n# **总结**\r\n本次漏洞的成因是经济模型计算存在漏洞，攻击者可以控制价格的买卖数量从而使Token价格大幅缩水，最终导致攻击者用极少的USDC.e掏空了项目方的WOO代币。建议项目方在设计经济模型和代码运行逻辑时要多方验证，合约上线前审计时尽量选择多个审计公司交叉审计。"},"author":{"user":"https://learnblockchain.cn/people/52","address":null},"history":null,"timestamp":1710819145,"version":1}