BNB:XSURGE闪电贷攻击事件分析-ODAILY_sellc币还会涨吗

一.事件背景

8月17日,有消息爆出BSC上DeFi协议XSURGE遭到闪电贷攻击,被盗金额价值500万美金。知道创宇区块链安全实验室迅速展开分析。

二.攻击合约及交易

攻击合约地址:

0x1514AAA4dCF56c4Aa90da6a4ed19118E6800dc46

币安禁止俄罗斯用户使用除俄罗斯卢布以外的任何其他法币:金色财经报道,币安继续在其P2P交易平台上为俄罗斯客户增加更多限制。8月27日,币安在其Telegram频道上宣布,币安P2P已禁止俄罗斯居民使用除俄罗斯卢布(RUB)以外的任何其他法定货币。

居住在国外的币安俄罗斯客户也被禁止使用卢布、欧元(EUR)、美元(USD)和乌克兰格里夫纳(UAH)等货币。该交易所表示,为了在币安P2P上使用俄罗斯卢布,你必须拥有俄罗斯KYC验证,同时居住在俄罗斯。

此前报道,8月25日,币安将Tinkoff和Rosban等受制裁的俄罗斯银行从其P2P平台的可用支付列表中删除。[2023/8/28 13:02:02]

攻击交易链接:

https://bscscan.com/tx/0x7e2a6ec08464e8e0118368cb933dc64ed9ce36445ecf9c49cacb970ea78531d2

三.事件复盘

分析攻击交易,攻击者通过闪电贷借入BNB后购买surge代币,然后不断卖出再买入,最后套利离场,分析代币源代码可以发现,这次漏洞的原因是因为合约内的sell函数导致的重入漏洞。

sell函数计算完卖出代币所值BNB数量后,合约会把BNB发送给攻击合约,但是如果攻击合约此时在回退函数中又执行了purchase函数,就会导致重入的发生。

观察此次函数调用产生的影响,由于这是在sell函数中调用的purchase,所以totaslSupply还没有销毁掉sell的SurgeToken,导致totalSupply高于正常值,bnbAmount和prevBNBAmount的值会因为94%的手续费问题而有所变化,但也影响不大。

也就是说攻击者通过买入-卖出-买入的操作,以更低的代币价格获取到了更多的surge代币,值得一提的是因为sell函数中nonReentrant修饰函数的影响,攻击合约只能重复之前的操作,也说明了防重入修饰函数不能完全解决这种伪重入问题,最好的方法还是限制call函数转账调用,用更安全的transfer函数限制转账gas消耗。

四.事件总结

最近链上安全事件频繁发生,这次重入漏洞又造成了重大的经济损失,我们建议各大项目方认真审视自身代码,做好安全保障。同时官方发文称将会尽量弥补受害者被盗资金,如有最新进展,我们将会及时跟进。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-12:630ms