据慢雾区情报,币安智能链上DeFi收益聚合器PancakeBunny项目遭遇闪电贷攻击,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:
1.攻击者先发起一笔交易,使用0.5个WBNB与约189个USDT在PancakeSwap中添加流动性并获取对应的LP,随后将LP抵押至PancakeBunny项目的VaultFlipToFlip合约中。
2.在LP抵押完成后,攻击者再次发起另一笔交易,在这笔交易中攻击者先从PancakeSwap的多个流动性池子中闪电贷借出巨量的WBNB代币,并从Fortube项目的闪电贷模块借出一定数量的USDT代币。随后使用借来的全部USDT代币与部分WBNB代币在PancakeSwap的WBNB-USDT池子添加流动性,并把获得的LP留在WBNB-USDT池子中。
慢雾:JPEG'd攻击者或已将全部6106.75枚ETH归还给项目方:8月4日消息,慢雾MistTrack监测显示,JPEG'd攻击者或已将全部6106.75枚ETH归还给项目方。[2023/8/4 16:18:46]
3.由于在步骤1攻击者已经在VaultFlipToFlip合约中进行了抵押,因此攻击者在添加完流动性后直接调用VaultFlipToFlip合约的getReward函数来获取BUNNY代币奖励并取回先前抵押的流动性。
4.在进行getReward操作时,其会调用BunnyMinterV2合约的mintForV2函数来为调用者铸造BUNNY代币奖励。
慢雾:Transit Swap事件中转移到Tornado Cash的资金超过600万美元:金色财经报道,慢雾 MistTrack 对 Transit Swap 事件资金转移进行跟进分析,以下将分析结论同步社区:
Hacker#1 攻击黑客(盗取最大资金黑客),获利金额:约 2410 万美元
1: 0x75F2...FFD46
2: 0xfa71...90fb
已归还超 1890 万美元的被盗资金;12,500 BNB 存款到 Tornado Cash;约 1400 万 MOONEY 代币和 67,709 DAI 代币转入 ShibaSwap: BONE Token 合约地址。
Hacker#2 套利机器人-1,获利金额:1,166,882.07 BUSD
0xcfb0...7ac7(BSC)
保留在获利地址中,未进一步转移。
Hacker#3 攻击模仿者-1,获利金额:356,690.71 USDT
0x87be...3c4c(BSC)
Hacker#4 套利机器人-2,获利金额:246,757.31 USDT
0x0000...4922(BSC)
已全部追回。
Hacker#5 套利机器人-3,获利金额:584,801.17 USDC
0xcc3d...ae7d(BSC)
USDC 全部转移至新地址 0x8960...8525,后无进一步转移。
Hacker#6 攻击模仿者-2,获利金额:2,348,967.9 USDT
0x6e60...c5ea(BSC)
Hacker#7 套利机器人-4,获利金额:5,974.52 UNI、1,667.36 MANA
0x6C6B...364e(ETH)
通过 Uniswap 兑换为 30.17 ETH,其中 0.71 支付给 Flashbots,剩余 ETH 未进一步转移。[2022/10/6 18:41:10]
5.在mintForV2操作中,其会先将一定量(performanceFee)的LP转至WBNB-USDT池子中移除流动性,但由于在步骤2中攻击者把大量的LP留在了池子中,因此BunnyMinterV2合约将会收到大量的WBNB代币与USDT代币。
慢雾:Multichain(AnySwap)被黑由于anySwapOutUnderlyingWithPermit函数相关问题:据Multichain(AnySwap)早前消息,2022年01月18日,一个影响6个跨链Token的关键漏洞正在被利用。慢雾安全团队进行分析后表示,此次主要是由于anySwapOutUnderlyingWithPermit函数为检查用户传入的Token的合法性,且未考虑并非所有underlying代币都有实现permit函数,导致用户资产被未授权转出。慢雾安全团队建议:应对用户传入的参数是否符合预期进行检查,且在与其他合约进行对接时应考虑好兼容性问题。[2022/1/19 8:57:49]
6.在完成移除流动性后会调用zapBSC合约的zapInToken函数分别把步骤5中收到的WBNB与USDT代币转入zapBSC合约中。
声音 | 慢雾:ETDP钱包连续转移近2000 ETH到Bitstamp交易所,项目方疑似跑路:据慢雾科技反(AML)系统监测显示,自北京时间 12 月 16 日凌晨 2 点开始,ETDP 项目方钱包(地址 0xE1d9C35F…19Dc1C3)连续转移近 2000 ETH 到 Bitstamp 交易所,另有 3800 ETH 分散在 3 个新地址中,未发生进一步动作。慢雾安全团队在此提醒交易所、钱包注意加强地址监控,避免相关恶意资金流入平台。[2019/12/16]
7.而在zapInToken操作中,其会在PancakeSwap的WBNB-USDT池子中把转入的USDT兑换成WBNB。随后再将合约中半数WBNB在PancakeSwap的WBNB-BUNNY池子中兑换成BUNNY代币,并将得到的BUNNY代币与剩余的WBNB代币在WBNB-BUNNY池子中添加流动性获得LP,并将此LP转至mintForV2合约中。而由于步骤5中接收到的非预期的大量的WBNB,并且进行WBNB兑换成BUNNY代币的操作,因此WBNB-BUNNY池子中的WBNB数量会大量增加。
8.在完成zapInToken操作后会计算BunnyMinterV2合约当前收到的WBNB-BUNNYLP数量,并将其返回给mintForV2。随后将会调用PriceCalculatorBSCV1合约的valueOfAsset函数来计算这些LP的价值,这里计算价值将会以BNB结算(即单个LP价值多少个BNB)。
9.在valueOfAsset计算中,其使用了WBNB-BUNNY池子中WBNB实时的数量乘2再除以WBNB-BUNNYLP总数量来计算单个LP的价值(valueInBNB)。但经过步骤7,我们可以发现WBNB-BUNNY池子中的WBNB非预期的数量大量变多了,这就导致了在计算单个LP的价值会使得其相对BNB的价格变得非常高。
10.随后在mintForV2中,合约会以在步骤9中计算出的LP价值来通过amountBunnyToMint函数计算需要给攻击者铸造多少BUNNY代币。但由于价格计算方式的缺陷导致最终LP的价格被攻击者恶意的操控抬高了,这就导致了BunnyMinterV2合约最终给攻击者铸造了大量的BUNNY代币(约697万枚)。
11.在拿到BUNNY代币后,攻击者将其分批卖出成WBNB与USDT以归还闪电贷。完成整个攻击后拿钱走人。
总结:
这是一次典型的利用闪电贷操作价格的攻击,其关键点在于WBNB-BUNNYLP的价格计算存在缺陷,而BunnyMinterV2合约铸造的BUNNY数量依赖于此存在缺陷的LP价格计算方式,最终导致攻击者利用闪电贷操控了WBNB-BUNNY池子从而拉高了LP的价格,使得BunnyMinterV2合约铸造了大量的BUNNY代币给攻击者。慢雾安全团队建议,在涉及到此类LP价格计算时可以使用可信的延时喂价预言机进行计算或者参考此前AlphaFinance团队。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。