据慢雾区情报,2022 年 2 月 14 日,BSC 链上的 TitanoFinance 项目遭受攻击。
1. 在 2022-02-10 18:48:04 (UTC),攻击者创建了相关的攻击合约 (0x1866207c355d4c6e0b03b4dc0bf9c658f4d13f8a)
2. 在 2022-02-14 4:36:21 (UTC),攻击者调用第一步中的 0x186620 合约中的 createMultipleWinnersFromExistingPrizeStrategy 函数创建了恶意的 prizeStrategy 合约 0x49D078d25b08f2731cBf5AF8e8CDF1eA3E0a2046
慢雾:过去一周加密领域因安全事件累计损失3060万美元:7月24日消息,据慢雾统计,上周加密领域因遭遇攻击累计损失3060万美元,攻击者利用了不同的攻击向量。这些事件包括Alphapo热钱包被盗(损失2300万美元)、Conic Finance遭闪电贷攻击(损失30万美元)以及重入攻击(损失320万美元)、GMETA发生RugPull(损失360万美元)、BNO遭闪电贷攻击(损失50万美元)等。[2023/7/24 15:55:56]
3. 在 2022-02-14 4:39:12 (UTC),StakePrizePool 合约 (0x4d7f0a96967dce1e36dd2fbb131625bbd9106442) 中,owner (0xc8abdb16fd6040c76dfd9b5186abfdc3b96df4b8) 调用了 setPrizeStrategy 函数 ( 该函数仅 owner 可以调用 ),使得 _prizeStrategy 被改成了 0x49D078d25b08f2731cBf5AF8e8CDF1eA3E0a2046
慢雾:警惕Web3钱包WalletConnect钓鱼风险:金色财经报道,慢雾安全团队发现 Web3 钱包上关于 WalletConnect 使用不当可能存在被钓鱼的安全风险问题。这个问题存在于使用移动端钱包 App 内置的 DApp Browser + WalletConnect 的场景下。
慢雾发现,部分 Web3 钱包在提供 WalletConnect 支持的时候,没有对 WalletConnect 的交易弹窗要在哪个区域弹出进行限制,因此会在钱包的任意界面弹出签名请求。[2023/4/17 14:08:53]
4. 在 2022-02-14 4:41:51 (UTC),接着攻击者调用了所创建的恶意的 prizeStrategy 合约 (0x49D078) 中的 _awardTickets 函数,该函数调用了 prizePool 合约中 (0x4d7f0a) 的 award 函数,该函数需要满足 onlyPrizeStrategy 修饰器条件 (_msgSender() == address(prizeStrategy)),该函数会给指定的 to 地址 mint 指定数量的 ticket 代币 (Ticket Titano (TickTitano)
慢雾:Polkatrain 薅羊毛事故简析:据慢雾区消息,波卡生态IDO平台Polkatrain于今早发生事故,慢雾安全团队第一时间介入分析,并定位到了具体问题。本次出现问题的合约为Polkatrain项目的POLT_LBP合约,该合约有一个swap函数,并存在一个返佣机制,当用户通过swap函数购买PLOT代币的时候获得一定量的返佣,该笔返佣会通过合约里的_update函数调用transferFrom的形式转发送给用户。由于_update函数没有设置一个池子的最多的返佣数量,也未在返佣的时候判断总返佣金是否用完了,导致恶意的套利者可通过不断调用swap函数进行代币兑换来薅取合约的返佣奖励。慢雾安全团队提醒DApp项目方在设计AMM兑换机制的时候需充分考虑项目的业务场景及其经济模型,防止意外情况发生。[2021/4/5 19:46:39]
此时 prizePool 合约中的 _prizeStrategy 已经在上一步被修改成 0x49D078,满足 onlyPrizeStrategy 的条件,于是 StakePrizePool 合约给攻击者 mint 了 32,000,000 个 ticket 代币
5. 在 2022-02-14 4:43:18 (UTC),StakePrizePool 合约 (0x4d7f0a) 中,owner 再次调用了 setPrizeStrategy 函数,将 _prizeStrategy 改回 0x5739f9F8C9Fc9854a5B6f3667a6fB14144DC40A7
6. 最后攻击者调用 StakePrizePool 合约 (0x4d7f0a) 中的 withdrawInstantlyFrom 函数将 ticket 代币换成 Titano 代币,然后在 pancake 池子中把 Titano 换成 BNB,攻击者重复了这个过程 8 次, 最后共获利 4,828.7 BNB,约 1900w 美元
据慢雾 MistTrack 分析,攻击者最初的获利地址为 0xad9217e427ed9df8a89e582601a8614fd4f74563,目前被黑资金已被攻击者转移到其他 23 个钱包。
总结:此次主要由于 owner 角色可以任意设置 setPrizeStrategy 函数,导致了池子被设置成恶意的 PrizeStrategy 合约造成后续利用。慢雾安全团队建议:对于敏感的函数操作,建议采用多签钱包的角色来操作,或者把 owner 角色权限移交给社区管理。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。