前言
8月17日,BSC链上的XSURGE协议遭到闪电贷攻击,损失超过500万美元。对此,知道创宇区块链安全实验室对攻击流程和代码细节进行了全盘梳理。
全盘梳理
基础信息
-攻击tx:0x7e2a6ec08464e8e0118368cb933dc64ed9ce36445ecf9c49cacb970ea78531d2-攻击合约:
0x1514AAA4dCF56c4Aa90da6a4ed19118E6800dc46
稳定币TrueUSD与加密友好银行Silvergate合作正常:稳定币TrueUSD官方推特表示,与加密友好银行Silvergate合作一切正常。此外,TUSD用户还可通过PrimeTrust, First Digital Trust, BitGo和Signature Bank等其他合作金融机构快速铸币。
据悉,TUSD是完全抵押并经链上实时验证的美元稳定币。TUSD流通量与美元储备比例达到1:1, 实现100%储备,并经会计公司Armanino实时审计。[2021/6/11 23:30:15]
-SurgeToken:
Gate.io Startup 首发项目VSO上线24H最高涨幅1440%:据Gate.io芝麻开门行情显示,截至今日12:49,Gate.io Startup 首发项目VSO回报率超7倍,24H最高涨幅1440%,最高价格0.35美元,为首发认购价格0.05美元的7倍,当前价格为0.16152美元,24H现货交易量达223.36万美元。据悉, Startup首发项目VSO已于4月30日22:00上线。近期行情波动较大,请注意控制风险。[2021/5/1 21:16:04]
0xE1E1Aa58983F6b8eE8E4eCD206ceA6578F036c21
Gate.io 抵押借币将新增开放90个热门币种:Gate.io于2019年12月上线“抵押借币”功能,在长达近400天的运营时间内,为广大有借贷需求的用户带来了实在的投资便利。
据悉,Gate.io抵押借币即将新增开放90个币种, 用户可以抵押一种数字货币借入另外一种数字货币,借入的代币可自由使用(支持随时提款,交易,C2C等所有资金操作),秒借秒还,利息最低按4小时计算,超过4小时按小时计算,目前BTC的借贷币年化率低至3.65%,USDT借贷币年化率低至7.30%。[2021/1/4 16:24:56]
攻击流程
这里有个小细节,代币转移流程中的顺序是按照事件先后顺序来显示的,而重入之后的买操作引起的事件会在卖操作引起的事件之前,所以在流程中看到的每一个单独的重入攻击中是SURGE的买入发生在卖出之前。
漏洞原理
漏洞点在于SurgeToken合约中的sell()函数,其中对调用者msg.sender的BNB转账采用的call()函数,并且在转账之后才更新代币总量_totalSupply,是典型的重入漏洞场景。
虽然sell()函数使用了nonReentrant修饰防止了重入,但purchase()函数并没有。重入转回BNB给合约,触发fallback函数调用purchase(),由于_totalSupply尚未减去卖出量,而导致可买入相较正常更多的SURGE代币。
复现
价格分析
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代币而获利。
简而言之,典型的重入漏洞场景,教科书级的案例。
頁面點擊按鈕 活動時間:2021年10月11日11:30至2021年10月18日07:59活動一:參加GALA知識競賽,分享60,000美元等值GALA活動期間.
Gate.io现已上线借贷挖矿功能,用户存入代币提供流动性即可赚取收益。Gate.io借贷挖矿支持随存随取,交易更便捷。后续将陆续上线单币种借贷流动性矿池,敬请期待.
国际清算银行在其9月份的报告中表示,私人数字资产可以与中央银行运营的数字货币共存。该报告遵循亚洲部分地区对私人Crypto的政策禁令——这是一个有趣的更新,因为它是CBDC试验和试点启动的领跑者.
尊敬的用户, WBF现将恢复OTC,暂停期间给您带来的不便敬请谅解,如有疑问请联系在线客服。 WBF风险提示: 用户在进行充币前,建议仔细阅读该币充提页面的提示,以避免因为小于最小上账金额而无法.
据Newsbitcoin10月9日消息,亚洲阿布哈兹自治共和国当局已确认扩大对加密货币矿工的互联网限制.
親愛的ZT用戶: ZT創新板即將上線DARK,並開啟DARK/USDT交易對。具體上線時間如下:充值:已開啟;交易:2021年10月8日17:00; DARK 項目簡介:「黑暗疆界」是最新的遊戲.