零时科技 | OMNI遭到黑客攻击,损失超1300ETH

  • 时间:
  • 浏览:39
  • 来源:区块链技术网

0x1 事件背景

OMNI是一个用于创建和交易自定义数字资产和货币的平台。 零时科技区块链安全情报平台监控到消息,北京时间2022年7月10日,OMNI遭到黑客攻击,损失超1300ETH, 随后OMNI发布公告称OMNI仍处于测试阶段(测试版),没有客户资金损失,只有内部测试资金受到影响!零时科技安全团队及时对此安全事件进行分析。

0x2 攻击信息

攻击钱包地址: 0x00000000c251faf2de8217ab64accd0070b97e47 0x627a22FF70Cb84e74c9C70E2d5B0B75af5A1Dcb9 攻击合约地址: 0x3c10e78343c475b99d20fa544dd30b43c0cba26f 0x1C244c94090390f885d472b83dF267f083C72Faf 攻击交易: 0x264e16f4862d182a6a0b74977df28a85747b6f237b5e229c9a5bbacdf499ccb4 Pool合约: 0x50c7a557d408a5f5a7fdbe1091831728ae7eba45

0x3 攻击步骤

1)攻击者从Balancer闪电贷 1000 WETH 至 0x3c10e78343c475b99d20fa544dd30b43c0cba26

2)攻击者利用flashloan函数借出20 Doodles ,并通过sushiswap使用13.203802230912588834 WETH兑换1 Doodles

3)调用supplyERC721方法质押三个NFT,并借出12.15 WETH

4)取出其中两个NFT

5)将借出的12.15 WTH还回,并调用清算方法对剩余一个NFT进行清算

6)在清算过程中通过调用ERC721_checkOnERC721Received函数进行重入攻击,继续将 20 doodles进行质押,并借出 81 WETH

7)取出 20 NFT,由于清算函数中返回值将状态设置为false,因此在取出函数中对于借贷状态判断错误,20NFT 可以成功取出 8)由于在进行清算时,先将NFT取出,之后将还回的钱扣除,攻击者通过取出NFT时进行重入,重入后继续进行判断,此时状态已经改变,之前借出的12.15 WETH 也不需要归还,所以攻击者最终将得到93.15 WETH

9)将通过调用flashloan获得的 20 Doodles 归还,将闪电贷得到的 1000 WETH 归还

0x4 漏洞核心

攻击者通过调用LiquidationLogic.sol 中清算方法executeERC721LiquidationCall进行清算

在调用_burnCollateralNTokens方法时,burn函数会调用ERC721中_checkOnERC721Received方法

此时to地址为攻击合约地址,攻击者在此处实现重入攻击。继续质押20 Doodles进行借款

ID状态标记为true,之后继续执行清算函数时,清算函数会将此处的true覆盖为false。之后执行取出质押操作,isBorrowAny()判断ID状态,此时为false,成功取出质押的Doodles。

0x5 资金流向

两个攻击钱包地址已分别将获取的800 ETH 和 426.5 ETH资金转入Tornado.Cash

总结及建议

通过此次攻击来看,该次攻击核心主要为项目方合约访问控制缺陷,未对Pool合约中质押做重入限制,使得攻击者恶意调用ERC721中_checkOnERC721Received函数进行重入攻击,以及在setBorrowing()方法之前没有设置状态判断操作。 安全建议 建议对合约方法传参进行严格访问控制 建议状态判断在转账之前 建议项目方上线前进行多次审计,避免出现审计步骤缺失

猜你喜欢

比特币区块链挖矿原理入门由浅到深

自从开始学习区块链相关知识之后,脑袋中对于挖矿的机制开始有越来越多的问号。而网路上大部分的文章都只有讲到一些大面向,并没有谈到一些细节的部份,于是就稍微整理下关于挖矿的整体流程

2022-07-30

挖矿前,先快速了解什么是区块链!

常常看到周遭的朋友对于挖矿蠢蠢欲动,说到挖矿,就能谈到有人去深山找个有瀑布的地方利用水力发电来挖矿…等等一堆想法。但是,让我们回到挖矿的根本:「区块链」,这个话题,可就让一堆人

2022-07-30

区块链矿工的甘苦谈:这一天,我决定把矿机都卖给别人了

如果把挖矿比喻成种苹果树,以下的故事是我的亲身经历,一段关于矿工在异世界灰头土脸掏金的故事:伙伴们,这一天,我把苹果树都卖掉给别人了。望着一旁的锄头,我跟大家说,我先离开了农田

2022-07-30

区块链挖矿是什么,3分钟让你读懂新时代矿工

有留意财经或IT新闻的读者,肯定看过不少关于用电脑挖矿的报导。究竟什么是挖矿?为什么挖矿能赚钱?挖矿还衍生出不同的商业模式,如卖矿机,卖云端挖矿服务、卖挖矿合同,俨如金融业的衍

2022-07-30

1月份GameFi新创共获10亿美元注资、游戏应用占区块链活动的52%

最新报告显示,区块链游戏领域在今年一月份获得了10亿美元的资金,该数据显示出了GameFi领域不断成长的一个明显趋势。GameFi蓬勃发展根据区块链分析平台DappRadar的

2022-07-30