快捷搜索:  汽车  科技

智能合约漏洞真的假的(9天前停止使用的合约)

智能合约漏洞真的假的(9天前停止使用的合约)0x1befe6f3f0e8edd2d4d15cae97baee01e51ea4a4被攻击合约:0x74298086c94dab3252c5dac979c9755c2eb08e49攻击合约:0x4e284686fbcc0f2900f638b04c4d4b433c40a345

2022年4月2日,成都链安链必应-区块链安全态势感知平台舆情监测显示,Gymdefi的LiquidityMigrationV2合约遭受黑客攻击,黑客获利约1 327 WBNB。成都链安技术团队第一时间对事件进行了分析,结果如下。

#1 事件相关信息

攻击交易:

0xa5b0246f2f8d238bb56c0ddb500b04bbe0c30db650e06a41e00b6a0fff11a7e5

攻击者地址:

0x74298086c94dab3252c5dac979c9755c2eb08e49

攻击合约:

0x4e284686fbcc0f2900f638b04c4d4b433c40a345

被攻击合约:

0x1befe6f3f0e8edd2d4d15cae97baee01e51ea4a4

#2 攻击流程

1. 攻击者首先从Tornado中提取0.99655 BNB。

智能合约漏洞真的假的(9天前停止使用的合约)(1)

2. 攻击者部署攻击合约后,首先从WBNB-BUSD (0x58f8...dc16)交易池中借贷2 400 WBNB到攻击合约中为后续攻击步骤做准备。

智能合约漏洞真的假的(9天前停止使用的合约)(2)

3. 接着在GYM-WBNB(0x8dc0...91db)交易池中将600 WBNB 兑换成 5 942 069.12 GYM,然后添加1730 WBNB和140W GYM到GYM-WBNB交易池中获得46 106.30 LP代币。

智能合约漏洞真的假的(9天前停止使用的合约)(3)

4. 完成流动性添加后,攻击者通过攻击合约调用LiquidityMigrationV2合约中的migrate函数进行迁移。由于LiquidityMigrationV2合约迁移时未查询GYM和GYMNET代币实际价格,移除流动性返回的GYM数量直接作为添加流动性的GYMNET数量传入,攻击者成功将46 106.30 LP(GYM-WBNB)代币换成了44 760.25 LP(GYMNET-WBNB)代币。

智能合约漏洞真的假的(9天前停止使用的合约)(4)

5. 之后再移除流动性,将获得的1 166 737.57 GYMNET兑换成WBNB。最后归还闪电贷,并将本次攻击所得约1 327 WBNB发送给自身地址。

智能合约漏洞真的假的(9天前停止使用的合约)(5)

#3 漏洞分析

本次攻击主要利用了LiquidityMigrationV2合约中代币兑换设计漏洞,合约中的migrate函数在进行迁移时,将GYM-WBNB交易池移除流动性时返回的数据直接作为了GYMNET-WBNB交易池中添加流动性时的参数。

智能合约漏洞真的假的(9天前停止使用的合约)(6)

攻击者通过闪电贷借贷大笔资金后,恶意控制了GYM-WBNB交易池中的GYM和WBNB的比例。然后调用migrate函数,将1 400 000 GYM兑换为1 166 737.57 GYMNET。根据攻击发生时的GYM和GYMNET价格,GYM和GYMNET的比例约为130:1。

智能合约漏洞真的假的(9天前停止使用的合约)(7)

智能合约漏洞真的假的(9天前停止使用的合约)(8)

根据合约中的交易情况可以看出,合约似乎在9天前就已经停止使用了。但是合约中仍存留大量的GYMNET代币,这正好给了攻击者可乘之机。

智能合约漏洞真的假的(9天前停止使用的合约)(9)

#4 资金追踪

截止发文时,被盗资金还未被攻击者转出,1 327 WBNB仍在攻击地址中:

智能合约漏洞真的假的(9天前停止使用的合约)(10)

针对本次事件,成都链安在此建议:

1. 合约开发时,依赖外部合约数据的合约必须要做好数据的校验,防止恶意数据对合约造成危害。

2. 项目上线前,一定要选择专业的安全审计公司进行全面的安全审计,规避安全风险。

3. 项目运行时,管理人员一定要做好项目状态的监控,合约弃用或出现异常时一定要及时将资金转移到安全的地址上。



猜您喜欢: