据慢雾安全团队情报,2023 年 6 月 1 日,Cellframe 遭到闪电贷攻击,Cellframe ERC20 v2 价格下跌 41.2%。慢雾安全团队第一时间介入分析,并将结果分享如下:
相关信息
攻击者地址:
0x2525c811EcF22Fc5fcdE03c67112D34E97DA6079
攻击者合约地址:
0x1e2a251b29e84e1d6d762c78a9db5113f5ce7c48
攻击交易:
0x943c2a5f89bc0c17f3fe1520ec6215ed8c6b897ce7f22f1b207fea3f79ae09a6
攻击者添加 LP(OLD) 交易:
慢雾:警惕针对 Blur NFT 市场的批量挂单签名“零元购”钓鱼风险:金色财经报道,近期,慢雾生态安全合作伙伴 Scam Sniffer 演示了一个针对 Blur NFT 市场批量挂单签名的“零元购”钓鱼攻击测试,通过一个如图这样的“Root 签名”即可以极低成本(特指“零元购”)钓走目标用户在 Blur 平台授权的所有 NFT,Blur 平台的这个“Root 签名”格式类似“盲签”,用户无法识别这种签名的影响。慢雾安全团队验证了该攻击的可行性及危害性。特此提醒 Blur 平台的所有用户警惕,当发现来非 Blur 官方域名(blur.io)的“Root 签名”,一定要拒绝,避免潜在的资产损失。[2023/3/7 12:46:39]
0xe2d496ccc3c5fd65a55048391662b8d40ddb5952dc26c715c702ba3929158cb9
慢雾:Multichain(AnySwap)被黑由于anySwapOutUnderlyingWithPermit函数相关问题:据Multichain(AnySwap)早前消息,2022年01月18日,一个影响6个跨链Token的关键漏洞正在被利用。慢雾安全团队进行分析后表示,此次主要是由于anySwapOutUnderlyingWithPermit函数为检查用户传入的Token的合法性,且未考虑并非所有underlying代币都有实现permit函数,导致用户资产被未授权转出。慢雾安全团队建议:应对用户传入的参数是否符合预期进行检查,且在与其他合约进行对接时应考虑好兼容性问题。[2022/1/19 8:57:49]
前置信息
此次攻击中出现多个新旧合约,我们将使用 LpMigration 合约中新旧合约的参数名作为本次攻击分析中的合约名。
慢雾:有用户遭钓鱼攻击,在OpenSea上架的NFT以极低匹配价格售出:据慢雾消息,有用户在 OpenSea 挂单售卖的 NFT 被恶意的以远低于挂单价匹配买。经慢雾安全团队分析,此是由于该受害用户遭受钓鱼攻击,错误的对攻击者精心构造的恶意订单进行签名,恶意订单中指定了极低的出售价格、买方地址为攻击者以及出售 NFT 为受害用户在 OpenSea 上架的待出售 NFT。攻击者使用受害用户已签名的出售订单以及攻击者自己的购买订单在 OpenSea 中进行匹配,并以攻击者指定的极低价格成交,导致受害用户的 NFT 以非预期的价格售出。[2021/12/11 7:31:47]
address OLD_CELL: 0xf3E1449DDB6b218dA2C9463D4594CEccC8934346
address LP_OLD: 0x06155034f71811fe0D6568eA8bdF6EC12d04Bed2
声音 | 慢雾:99%以上的勒索病使用BTC进行交易:据慢雾消息,勒索病已经成为全球最大的安全威胁之一,99%以上的勒索病使用BTC进行交易,到目前为止BTC的价格已经涨到了一万多美元,最近一两年针对企业的勒索病攻击也越来越多,根据Malwarebytes统计的数据,全球TO B的勒索病攻击,从2018年6月以来已经增加了363%,同时BTC的价格也直线上涨,黑客现在看准了数字货币市场,主要通过以下几个方式对数字货币进行攻击:
1.通过勒索病进行攻击,直接勒索BTC。
2.通过恶意程序,盗取受害者数字货币钱包。
3.通过数字货币网站漏洞进行攻击,盗取数字货币。[2019/8/25]
address CELL: 0xd98438889Ae7364c7E2A3540547Fad042FB24642
声音 | 慢雾:ETC 51%双花攻击所得的所有ETC已归还完毕:据慢雾区消息,ETC 51%攻击后续:继Gate.io宣称攻击者归还了价值10万美金的ETC后,另一家被成功攻击的交易所Yobit近日也宣称收到了攻击者归还的122735 枚 ETC。根据慢雾威胁情报系统的深度关联分析发现:攻击者于UTC时间2019年1月10日11点多完成了攻击所获的所有ETC的归还工作,至此,持续近一周的 ETC 51% 阴云已散。[2019/1/16]
address LP_NEW: 0x1c15f4E3fd885a34660829aE692918b4b9C1803d
具体细节分析
1. 通过 DODO 的 DPPOracle 闪电贷 1000 个 BNB。
2. 通过 PancakeSwap V3 闪电贷 50 万枚 CELL。
3. 攻击者在 PancakeSwap V2 LP_NEW 池子中 ,将闪电贷来的 50 万枚 CELL Token 全部 swap 为 50 枚 BNB。这时,LP_NEW 池中仅剩 8 枚 BNB,而 CELL 有 55 万枚。
4. 紧接着,攻击者在另外一个 PancakeSwap V2 池子 LP_OLD 池中,将 900 枚 BNB swap 为 OLD_CELL。此时 LP_OLD 中的 BNB 数量为 902 枚,OLD_CELL 仅有 7 枚。
5. 在攻击者将 BNB 兑换成 OLD_CELL 后,我们发现攻击者直接调用 LpMigration 合约的 migrate 函数进行 LP 迁移。奇怪的是,在我们刚刚的分析里,攻击者并没有获取 LP Token 的操作,那么这些 LP Token 又是从哪里来的呢?
6. 于是回到攻击合约,通过攻击合约的前一笔交易可以发现,攻击者在交易中向 LP_OLD 池子添加流动性,获取 LP(OLD) Token。
7. 攻击者对 LP_OLD 池的 LP(OLD) 进行连续 migrate 操作,细节如下:
先调用 migrateLP 函数移除 LP(OLD) 的流动性,并将代币返还给用户。由于池子 LP_OLD 中的 BNB 代币很多,在移除流动性时,计算所获得的 BNB 数量会增加,OLD_CELL 减少。随后,在 LP_NEW 池中,getReserves 获取到 BNB 和 CELL 的数量。由于之前的 swap 操作,LP_NEW 池中的 BNB 数量少,CELL 数量多,所以计算出来的 resoult 值会偏大,使得新计算出的 CELL 的 token1 值也偏大。
8. 然而,原本 LpMigration 合约中又是存在 CELL 代币的,所以攻击者添加流动性所用的 token1 代币 CELL 都来自 LpMigration 合约。随后将计算出的结果添加流动性到 ROUTER_V2 池中。(PS: 这也是为什么在攻击发生后,Cellframe: Deployer 会通过 withdrawCELL() 函数将合约中的 CELL 代币全部取出)
9. 也就是说,攻击者利用 LP_OLD 池中 BNB 多,OLD_CELL 少,通过移除流动性获取到更多的 BNB。而在 LP_NEW 池中 BNB 少,CELL 多的情况下,以少量的 BNB 和 CELL 就可以添加流动性。攻击者通过多次 migrate 操作获利。
10. 最后,攻击者将 LP_NEW 的流动性移除,将 OLD_CELL 在 LP_OLD 池中兑换为 BNB,并在一个新的 CELL-BUSD 池中先兑换成 BUSD 再兑换成 BNB,偿还 FlashLoan,获利 245.522826177178247245 BNB。
总结
此次攻击的核心在于利用流动性迁移计算,攻击者操纵两个不同池子中的流动性致其不平衡,进而套利。
慢雾科技
个人专栏
阅读更多
区块律动BlockBeats
曼昆区块链法律
Foresight News
GWEI Research
吴说区块链
西柚yoga
ETH中文
金色早8点
金色财经 子木
ABCDE
0xAyA
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。