前言
8月17日,BSC链上的XSURGE协议遭到闪电贷攻击,损失超过500万美元。对此,知道创宇区块链安全实验室对攻击流程和代码细节进行了全盘梳理。
全盘梳理
基础信息
-攻击tx:0x7e2a6ec08464e8e0118368cb933dc64ed9ce36445ecf9c49cacb970ea78531d2-攻击合约:
0x1514AAA4dCF56c4Aa90da6a4ed19118E6800dc46
-SurgeToken:
0xE1E1Aa58983F6b8eE8E4eCD206ceA6578F036c21
0xScope:过去14天Coinbase地址向Circle地址转账约48亿枚USDC:11月28日消息,Web3知识图谱协议0xScope在推特上表示,据其研究员Bobie研究显示,过去14天Coinbase地址通过0xd102及0x2cc5开头的中间地址向Circle地址转账约48亿枚USDC。[2022/11/28 21:07:05]
攻击流程
XSURGE已启动Surge Fund 核实快照数据是否正确:8月28日消息,DeFi项目XSURGE发推称,Surge Fund已经启动,接下来的36个小时将用于与社区核实快照数据是否正确,然后将允许8月16日攻击事件的受害者每天申领BNB。
此前8月17日报道,XSURGE官方在遭遇攻击前披露SurgeBNB合约存在漏洞,随后不久遭攻击损失500万美元[2021/8/28 22:43:04]
这里有个小细节,代币转移流程中的顺序是按照事件先后顺序来显示的,而重入之后的买操作引起的事件会在卖操作引起的事件之前,所以在流程中看到的每一个单独的重入攻击中是SURGE的买入发生在卖出之前。
漏洞原理
漏洞点在于SurgeToken合约中的sell()函数,其中对调用者msg.sender的BNB转账采用的call()函数,并且在转账之后才更新代币总量_totalSupply,是典型的重入漏洞场景。
跨链DEXSifchain称已有超过95个验证者加入测试网:跨链DEX Sifchain近日发推称,已经有超过95个验证者加入测试网(是我们预期的5倍)。我们非常感谢大家的热情,我们也很乐观,相信可以利用这一势头来培育充满活力的Sifchain社区。
据悉,10月24日,Sifchain宣布首个测试网Monkey Bars已经上线。[2020/11/11 12:19:17]
虽然\nsell()函数使用了nonReentrant修饰防止了重入,但purchase()函数并没有。重入转回BNB给合约,触发\nfallback函数调用purchase(),由于_totalSupply尚未减去卖出量,而导致可买入相较正常更多的SURGE代币。
公告 | 币安已完成2019年5月份 GAS、ONG、VTHO、NPXS 的发放:据币安公告,币安目前已完成2019年5月份 GAS、ONG、VTHO、NPXS 的发放。[2019/6/6]
复现
价格分析
sell()函数卖出过程中,输入tokenAmount与输出amountBNB的关系:
purchase()函数买入过程中,输入bnbAmount与输出tokensToSend的关系:
在重入过程中,sell()函数卖出后获得的BNB通过重入打回SurgeToken合约传入purchase()函数故令sell()函数的输出amountBNB与purchase()函数的输入bnbAmount相等,可得到整个利用流程中输入与输出的关系:
若要实现套利,需要输出大于输入,则有:
最后得到:
也就是说重入套利过程中调用sell()卖出的代币量必须在代币总量的12.383%以上
模拟演示
为方便调试,将SurgeToken合约中的mint()函数可见性改为public,并为构造函数增加payable修饰,在部署时传入10^15wei。
SurgeToken合约初始化的代币总量为10^9,根据前面推导出的结论,为攻击合约铸币200000000,则攻击合约拥有大约SURGE代币总量16%的代币。
攻击合约调用Attack()函数攻击,查看攻击合约的代币余额已变为209549307,获利9549307。
总结
XSURGE协议被攻击的本质原因在于sell()函数中存在重入漏洞,导致可通过purchase函数买入较多的SURGE代币而获利。
简而言之,典型的重入漏洞场景,教科书级的案例。
标签:SURSURGEURGCHAInsureumSurge Inuburger币发展前景Tokenize Xchange
区块链是一个去中心化的数字账本,用于存储数据,并对数据进行加密保护。人工智能则是基于收集到的数据进行分析和决策的引擎或“大脑”.
1900/1/1 0:00:0012月6日下午15:30,Odaily星球日报邀请到了CalaxyCo-FounderSoloCeesayandSpencerDinwiddie&CalaxyCTOCooperKunz为.
1900/1/1 0:00:00DAOrayakiDAO研究奖金池:感谢@vbuterin提出这个想法,感谢@barryWhiteHat的合作。本文所描述的是向MACI添加匿名化的无MPC替代方案.
1900/1/1 0:00:00如何打破NFT市场的发展局限性?NFT在2021年实现了爆炸性的增长,就连主流市场也开始拥抱NFT热潮.
1900/1/1 0:00:00上期我们对《区块链之符号理论》中的一些概念进行了描述和讨论,本期将对更深层次的进行论述。符号理论:符号方案和符号系统符号的表现,或数字符号,体现了从语法到语义的转变.
1900/1/1 0:00:00Vibranium正式邀请所有希望在自由民主世界发展虚拟经济的居民来Vibranium开展自己的全新生活,Vibranium团队对ConstitutionDAO精神高度认同.
1900/1/1 0:00:00