ETH:采用延时喂价还被黑?Warp Finance 被黑详解

By:?Kong@慢雾安全团队

背景

通过以上分析我们可以知道WETH的价格和DAI的价格获取是正常的,无法被恶意操纵,因此我们可以大胆猜测:攻击者通过将巨量的WETH打入WETH-DAI池子中换取DAI,这时候池子中WETH的数量将大大的增加,而由于滑点的存在,这种巨量兑换操作必然是会亏损一大部分WETH的。所以我们再看上面LP单价的计算方式,由于WETH数量的大大增加,在巨量兑换后池子中WETH数量*WETH价格+池子中DAI数量*DAI价格将远大于巨量兑换前的,也就是池子的总价值大大增加了。所以LP的单价也随之提高了,因此攻击者就可以通过其抵押的LPToken借出更多的稳定币了。

基于zkRollup的以太坊二层网络Taiko发布首个公共测试网:12月28日,据官方消息,基于 zkRollup 的以太坊二层网络 Taiko 发布测试网 Sn?fellsj?kull。目前该测试网支持开发者部署智能合约,并向普通用户开放交易测试和 L2 节点运行等功能。[2022/12/28 22:12:13]

分析思路验证

我们可以借助Ethtx.info来验证我们的猜测是否正确:

https://ethtx.info/mainnet/0x8bb8dc5c7c830bac85fa48acad2505e9300a91c3ff239c9517d0cae33b595090

1、通过上文中第4点分析我们可以知道:攻击者通过Uniswap的WETH-DAI交易对将大约34万的WETH兑换成约4762万DAI,此时WETH-DAI池子中约剩下有43.6万枚WETH和1328.8万枚DAI,而在此之前池子里约有9.5万枚WETH和6091万枚DAI。

KyberSwap:Elastic LM 合约存在阻止少数用户获得奖励的问题,将推出强制退出功能:8月19日消息,Kyber Network旗下DEX聚合器KyberSwap发布关于Elastic Farms的重要社区更新,称8月17日开始收到KyberSwap用户关于Elastic Farms的反馈,发现了ElasticLM合约中的一个小问题,该问题会阻止少数用户获得奖励,但所有资金都是安全的,且只有少数用户在获取奖励方面受到影响。受影响用户的强制退出功能将于北京时间2022年8月18日22:00前推出,完整修复程序将在稍后公布。[2022/8/19 12:35:58]

2、我们可以在Ethtx.info发现在兑换前WETH-DAI池子的LPToken单价为58815427。

巨量兑换后WETH-DAI池子的LPToken单价为135470392。

以太坊开发者工具平台Hardhat推出2.10.0版本:7月8日消息,以太坊开发者工具平台 Hardhat 宣布推出 2.10.0 版本,此版本标志着 Hardhat 历来采用的产品方向发生了变化。Hardhat 2.10.0 提供构建开箱即用的一组以太坊开发插件和功能 Hardhat Toolbox,其重大改进包括新的 Hardhat Chai Matchers 插件、新的文档架构、适用于 Visual Studio Code 的 Hardhat 稳定版本。[2022/7/8 2:00:14]

我们可以看到由于WETH数量的增加造成兑换后池子的总价值几乎翻倍了,因此单个LPToken在Warp中可借出的稳定币就更多了。

3、接下里如我们猜测的那样攻击者在拉高LPToken的价格后通过WarpControl合约的borrowSC函数分别借出DAI和USDC。

4、最后在Uniwsap的WETH-DAI池子总归还DAI,重新拿回34万枚WETH完成攻击操作。最后只需按部就班的归还闪电贷即可获利。

完整的攻击流程如下

1、攻击者部署攻击合约,并通过dydx与Uniswap闪电贷借出DAI和WETH。

2、攻击者拿出一小部分的DAI和WETH在Uniswap的WETH-DAI池中添加流动性,并获取LPToken。

3、攻击者使用添加流动性获取的LPToken抵押到WarpFinance中,为借出稳定币做准备。

4、攻击者利用巨量的WETH在Uniswap兑换成DAI来拉高WETH-DAI池子的总价值,使得WarpFinance中LPToken的单价变高。(注意这里WETH和DAI价格获取是正确的并没有被操纵,被操纵的是WETH的数量,通过增加WETH的数量来拉高池子的总价值)。

5、由于LPToken的单价变高,导致攻击者抵押的LPToken可以借出更多的稳定币来进行获利。

总结

本次攻击的本质是通过操纵LPToken的单价来获取更多的稳定币可借贷数量进行获利的。这是由于在WarpFinance中LPToken的价格是通过LP池子的总价值除以LPToken的总数量得到的,虽然代币价格获取正确,但代币数量是可被操纵的,因此LP的单价就是可被操纵的,这就形成了攻击的必要条件了。最终项目方损失约800万美元,但攻击者抵押的LP也留在了Vault中,如果抵押的这部分LP后续可被清算的话可以一定程度上的弥补项目方的损失。

相关参考链接如下:

Uniswap预言机实现介绍:

https://uniswap.org/docs/v2/core-concepts/oracles/

本次分析的攻击交易:

https://etherscan.io/tx/0x8bb8dc5c7c830bac85fa48acad2505e9300a91c3ff239c9517d0cae33b595090

慢雾导航

慢雾科技官网

https://www.slowmist.com/

慢雾区官网

https://slowmist.io/

慢雾?GitHub

https://github.com/slowmist

Telegram

https://t.me/slowmistteam

Twitter

https://twitter.com/@slowmist_team

Medium

https://medium.com/@slowmist

币乎

https://bihu.com/people/586104

知识星球

https://t.zsxq.com/Q3zNvvF

火星号

http://t.cn/AiRkv4Gz

链闻号

https://www.chainnews.com/u/958260692213.htm

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

BTCCSS:梅姨币圈日记:12.21ETH白盘走势分析

行情回顾:小时线来看,凌晨的一根大阴柱下跌,突破布林下轨,随后在次插针,总共30几美金的跌幅,在621一线行情才有所止跌,随后币价阶梯式上涨,目前币价在645附近震荡运行.

XLMFTX:12.20BTC晚行情分析

12.20比特币晚行情分析:今日凌晨突破新高24188后回落震荡,整体震荡于23000上方当前全网四小时级别多空比:多51.08%---空48.92%,恐惧&贪婪指数:92 日线图中.

XRPSONAR:12.20 以太坊行情分析

行情观点:小时级别来看,以太坊凌晨冲高触压670附近回调震荡下行,触底二次反抽多头未能延续,币价持续震荡下挫插针刺破下轨支撑,在642附近触底小幅反弹,技术上,MA5下穿大级别均线死叉向下.

[0:15ms0-1:141ms