据慢雾区消息,2021年2月13日,以太坊DeFiAlphaFinance遭受攻击,慢雾安全团队第一时间跟进分析,并以简讯的形式分享给大家,供大家研究。
1.攻击者用一部分的WETH在UniswapWETH-UNI池子上添加流动性,再把一部分的WETH兑换成sUSD并在Cream中添加流动性获得cySUSD凭证。
2.攻击者通过AlphaHomoraV2从IronBank借出sUSD,并将LP抵押到WERC20中为后面开杠杆做准备。
MakerDAO旗下借贷协议Spark Protocol DAI供给和借出余额均超1亿美元:8月8日消息,据 MakerDAO 旗下借贷协议 Spark Protocol 官方页面信息,该协议当前 DAI 供给量为 1.36 亿美元,单日增加 5871 万美元,借出余额达 1.18 亿美元,单日增加 6759 万美元。
此前消息,MakerDAO 已通过并执行提高 Spark Protocol 债务上限等提案。[2023/8/8 21:32:29]
3.攻击者再通过AlphaHomoraV2将上一步借出的sUSD归还给IronBank。
慢雾:BSC项目Value DeFi vSwap 模块被黑简析:据慢雾区情报,币安智能链项目 Value DeFi 的 vSwap 模块被黑,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:
1. 攻击者首先使用 0.05 枚 WBNB 通过 vSwap 合约兑换出 vBSWAP 代币;
2. 攻击者在兑换的同时也进行闪电贷操作,因此 vSwap 合约会将兑换的 vBSWAP 代币与闪电贷借出的 WBNB 转给攻击者;
3. 而在完成整个兑换流程并更新池子中代币数量前,会根据池子的 tokenWeight0 参数是否为 50 来选择不同的算法来检查池子中的代币数量是否符合预期;
4. 由于 vSwap 合约的 tokenWeight0 参数设置为 70,因此将会采用第二种算法对池子中的代币数量进行检查;
5. 而漏洞的关键点就在于采用第二种算法进行检查时,可以通过特殊构造的数据来使检查通过;
6. 第二种算法是通过调用 formula 合约的 ensureConstantValue 函数并传入池子中缓存的代币数量与实时的代币数量进行检查的;
7. 在通过对此算法进行具体分析调试后我们可以发现,在使用 WBNB 兑换最小单位(即 0.000000000000000001) vBSWAP 时,池子中缓存的 WBNB 值与实时的值之间允许有一个巨大的波动范围,在此范围内此算法检查都将通过;
8. 因此攻击者可以转入 WBNB 进行最小单位的 vBSWAP 代币兑换的同时,将池子中的大量 WBNB 代币通过闪电贷的方式借出,由于算法问题,在不归还闪电贷的情况下仍可以通过 vSwap 的检查;
9. 攻击者只需要在所有的 vSwap 池子中,不断的重复此过程,即可将池子中的流动性盗走完成获利。详情见原文链接。[2021/5/8 21:37:37]
4.上面几步似乎只是试探。
慢雾:Spartan Protocol被黑简析:据慢雾区情报,币安智能链项目 Spartan Protocol 被黑,损失金额约 3000 万美元,慢雾安全团队第一时间介入分析,并以简讯的形式分享给大家参考:
1. 攻击者通过闪电贷先从 PancakeSwap 中借出 WBNB;
2. 在 WBNB-SPT1 的池子中,先使用借来的一部分 WBNB 不断的通过 swap 兑换成 SPT1,导致兑换池中产生巨大滑点;
3. 攻击者将持有的 WBNB 与 SPT1 向 WBNB-SPT1 池子添加流动性获得 LP 凭证,但是在添加流动性的时候存在一个滑点修正机制,在添加流动性时将对池的滑点进行修正,但没有限制最高可修正的滑点大小,此时添加流动性,由于滑点修正机制,获得的 LP 数量并不是一个正常的值;
4. 随后继续进行 swap 操作将 WBNB 兑换成 SPT1,此时池子中的 WBNB 增多 SPT1 减少;
5. swap 之后攻击者将持有的 WBNB 和 SPT1 都转移给 WBNB-SPT1 池子,然后进行移除流动性操作;
6. 在移除流动性时会通过池子中实时的代币数量来计算用户的 LP 可获得多少对应的代币,由于步骤 5,此时会获得比添加流动性时更多的代币;
7. 在移除流动性之后会更新池子中的 baseAmount 与 tokenAmount,由于移除流动性时没有和添加流动性一样存在滑点修正机制,移除流动性后两种代币的数量和合约记录的代币数量会存在一定的差值;
8. 因此在与实际有差值的情况下还能再次添加流动性获得 LP,此后攻击者只要再次移除流动性就能再次获得对应的两种代币;
9. 之后攻击者只需再将 SPT1 代币兑换成 WBNB,最后即可获得更多的 WBNB。详情见原文链接。[2021/5/2 21:17:59]
5.随后攻击者开始利用AlphaHomoraV2的杠杆借贷从IronBank中循环借出sUSD,每次借出数量都是上一次的一倍,最后将借出的sUSD再转到Cream中添加流动性获得cySUSD凭证。
6.之后攻击者不满足于这种低效的杠杆循环借贷叠cySUSD的方式,开始使用闪电贷加快速度。
7.攻击者开始从AAVE中闪电贷借出180万USDC,并通过Curve将USDC兑换成sUSD,这时候攻击者就拿到了大量的sUSD了。
8.随后攻击者先用sUSD到Cream中添加流动性,并获得cySUSD凭证,再开始继续使用AlphaHomoraV2的杠杆借贷从IronBank中循环翻倍的借出sUSD,最后利用借出的sUSD去归还闪电贷。(偿还的闪电贷中有包含先前几步的一部分sUSD作为利息,因为最后一步借出的不足以还贷,但都是拿从Alpha借的去还的)?
9.重复上一步,闪电贷借出1000万USDC,换成sUSD,先添加在Cream中,添加9,668,335的流动性拿到cySUSD,再继续杠杆借贷,最后翻倍到10,088,930应该基本把池子借空了。然后开始重复添加流动性,获取cySUSD。最后再去归还闪电贷。
10.再闪电贷借出1000万,再重复添加流动性与借贷,获取cySUSD并归还闪电贷。
11.由于经过以上步骤攻击者已获得大量cySUSD,因此攻击者开始直接在Cream借出WETH、USDC、USDT、DAI、sUSD。
总结:攻击者使用闪电贷到AlphaFinance中进行杠杆借贷,并使用AlphaFinance本身的CreamIronBank额度来归还闪电贷,在这个过程中攻击者通过在Cream添加流动性获得了大量的cySUSD,使攻击者得以用这些cySUSD在CreamFinance中进行进一步的借贷。由于AlphaFinance的问题,导致了两个协议同时遭受了损失。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。