By:小白@慢雾安全团队
2022 年 3 月 21 日,据慢雾区消息,OneRing Finance 存在严重漏洞遭到攻击,黑客获利约 1,454,672.244369 USDC(约 146 万美元),慢雾安全团队第一时间介入分析,并将结果分享如下:
相关信息
OneRing Finance 是一个去中心化应用程序(DApp),它支持加密货币的质押挖矿。用户可以存入代币来获取收益。
以下是本次攻击涉及的相关地址:
攻击者地址:
0x12efed3512ea7b76f79bcde4a387216c7bce905e
攻击交易:https://ftmscan.com/tx/0xca8dd33850e29cf138c8382e17a19e77d7331b57c7a8451648788bbb26a70145
攻击合约:
0x6a6d593ed7458b8213fa71f1adc4a9e5fd0b5a58
DEX聚合器TFM宣布收购Cosmos网络浏览器Map Of Zones:9月10日消息,Cosmos生态DEX聚合器TFM发文称,已经收购Cosmos网络浏览器Map Of Zones(MoZ),计划将其添加到产品套件中。
据了解,MoZ已上线运营近4年,是Cosmos最大的浏览器之一。TFM集合了跨链、交易及NFT等内容,原定位集中在Terra生态,今年开始扩充支持其他Cosmos生态链。[2023/9/10 13:29:13]
被攻击合约:
OneRingVault:0xc06826f52f29b34c5d8b2c61abf844cebcf78abf
攻击核心点
OneRing 直接使用了 Pair 中的 reserves 参与 OShare 的价格计算,攻击者利用 OneRingVault 正常的业务逻辑进行巨额的 Swap 操作产生的大滑点,使得 Pair 中的 reserves 非预期的增加,从而拉高了 OShare 的价格,导致相同数量的 OShare 可以取出更多的资金。
动态 | 加密分析师Tone Vays将与澳本聪出席同一场会议 李启威发推抨击:加密货币货币分析师Tone Vays计划出席今天于伦敦召开的“区块链、人工智能和数字创新CC论坛”。鉴于知名加密货币反对者Nouriel Roubini及澳本聪(Craig Wright)亦将出席,因此该会议遭到了加密社区的广泛抵制。莱特币创始人李启威发推称:“我们很多人都做出了承诺,不参加邀请了‘假中本聪’(CSW)的会议。但你还是打算和他同台。耻辱。”[2019/10/14]
具体细节分析
1. 攻击者构造了攻击合约,利用闪电贷从 Solidity 借出 80000000 个 USDC 到攻击合约中
2. 接着通过 swap 函数将 1 个 USDC 兑换成 miMatic 代币,这里可以看到当前代币兑换率是 1:1.001109876698508218
动态 | 网络安全专家Eddie Schwartz担任Block.one公司CISO:据block.one官网消息,DarkMatter前网络服务执行副总裁兼知名网络安全专家Eddie Schwartz加入Block.one公司,并担任首席信息安全官(CISO)。[2019/4/2]
3. 调用 depositSafe 函数将 79,999,997($80,079,997.00)个 USDC 充值进合约
这里 depositSafe 函数会内部调用 _deposit 函数,_deposit 函数会调用 _doHardWorkAll 函数,在该函数中会使用 for 循环将部分存入的 USDC 全部兑换成其他的代币
声音 | Block.one CEO:Block.one正在构建一款为EOSIO单独使用的新产品:据南华早报消息,Block.one的CEO BB已承诺开启超过10亿美金,投资在EOSIO上创建的创业公司。Brendan称:“目前有足够的资本。”Block.one正在构建一款为EOSIO软件单独使用。[2018/9/27]
然后 depositSafe 将约 41,965,509.691846094312718922 个 OShare 代币 mint 给攻击者。此时我们可以看到 OShare 的价格是 1062758591235248117 这个值
从下面这张图中可以看出在 swap 后攻击者使用两个 USDC 再次兑换 miMATIC 代币时此时的兑换率已经产生巨大变化:
动态 | Coinone系统维护时间更改为9月10日:Coinone官方发布消息,由于营销分离协议, 改进邮件发送系统和存款结算次数的对帐,将在9月10日14点-15点进行系统维护。此前,Coinone预定维护时间为9月6日,随后在其官推上表示,延迟维护时间。[2018/9/7]
4. 然后调用 withdraw 函数。我们可以看到 withdraw 函数也调用了getSharePrice 函数进行 OShare 的价格计算
我们来看 getSharePrice 函数:
这里调用了 balanceWithInvested 函数,继续跟进发现调用了 investedBalanceInUSD 函数:
这里可以看到最终影响价格的是 getUSDBalanceFromUnderlyingBalance 函数
在 getUSDBalanceFromUnderlyingBalance 函数中我们可以看到,该函数使用合约中两个代币的数量? _reserves0 和 _reserves1 这两个值进行计算,由于之前的 swap 导致大量的 USDC 留在池子中,所以导致池子中的 USDC 数量变大,从而使 _amount 变大,这就导致了 getSharePrice 函数获取到的当前 OShare 的价格变大了
由下图我们可以看到当前的 OShare 的价格为 1136563707735425848 这个值:
从下面的 withdraw 函数中可以看出最终的提现数量是通过 _withdraw 进行计算得出的
跟进去后发现 _toWithdraw 也是由 balanceWithInvested 计算得出的,这也就导致这个值变大
然后会在这一步将攻击者持有的 41965509 个 OShare 兑换为 81534750101089 个 USDC
5. 攻击者归还闪电贷后获利离场
MistTrack
据慢雾 MistTrack 分析,攻击者将获利的部分 USDC 换成 FTM、ETH,最后将 USDC、ETH 跨链到以太坊。同时,以太坊上黑客地址初始资金来自于 Tornado.Cash 转入的 0.1 ETH,接着黑客将 521 ETH 转入 Tornado.Cash。
截止目前,黑客以太坊地址仍有近 4.5 万美元,包括 14.86 ETH 和 100.29 USDC。慢雾 MistTrack 将持续监控黑客地址。
总结
本次攻击是由于在 MasterChefBaseStrategy 合约中的 getUSDBalanceFromUnderlyingBalance 函数实时储备量进行计算导致攻击者可以利用闪电贷制造巨大差值从而获利。慢雾安全团队建议在进行 share 的价格计算时不要使用实时储备量进行计算,避免再次出现此类事故。
标签:ONEUSDSHASHARECrypto Legions Bloodstonegusd币最新消息ESHARE币Smartshare
Axie Infinity项目调研报告 一、项目背景 二、项目介绍 三、参与方式 四、项目盈利 1.宠物销售 2.土地销售 3.市场交易费 4.繁殖费 五、经济模型 1.项目代币 2.
前言 北京时间3月20日晚,知道创宇区块链安全实验室?监测到以太坊上分布式跨链协议。Li.Finance 受到了攻击,攻击者执行了 37 次call注入,获取了多个钱包中约 60 万美元的资产(.
正如希腊神话西绪福斯(Sisyphus)一样,其因前生罪恶受惩罚,无休止地将一块巨石滚到山顶,而巨石总是一再滚落.
司法部举办“区块链+法治”论坛现场。 李光印 摄11月16日,司法部在江苏省南京市举办“区块链+法治”论坛.
山东省司法厅副厅长迟丽华表示:去年以来,山东省司法厅积极探索,大力推进区块链技术在法治领域的应用,取得了一定进展和成效。 前期工作开展情况 ?加强工作保障.
中国央行数字货币 DCEP 在过去一个月中牵动了太多人的关注。不过,除去中国央行之外,新加坡金融监管机构新加坡金融管理局(MAS)在央行数字货币领域的探索和实践也颇为务实,也非常值得关注.