火星链 火星链
Ctrl+D收藏火星链

SUR:XSURGE 攻击事件的全面梳理

作者:

时间:1900/1/1 0:00:00

前言

8月17日,BSC链上的XSURGE协议遭到闪电贷攻击,损失超过500万美元。对此,知道创宇区块链安全实验室对攻击流程和代码细节进行了全盘梳理。

全盘梳理

基础信息

-攻击tx:0x7e2a6ec08464e8e0118368cb933dc64ed9ce36445ecf9c49cacb970ea78531d2-攻击合约:

0x1514AAA4dCF56c4Aa90da6a4ed19118E6800dc46

0xScope:币安10亿美元“行业复苏计划”地址目前仍无任何动作:12月30日消息,Web3知识图谱协议0xscope发推表示,币安推出10亿美元“行业复苏计划”至今已有36天时间,目前该计划使用的0x043a开头地址除了50美元的测试转账外并无其他动作。[2022/12/30 22:16:40]

-SurgeToken:

0xE1E1Aa58983F6b8eE8E4eCD206ceA6578F036c21

攻击流程

这里有个小细节,代币转移流程中的顺序是按照事件先后顺序来显示的,而重入之后的买操作引起的事件会在卖操作引起的事件之前,所以在流程中看到的每一个单独的重入攻击中是SURGE的买入发生在卖出之前。

Frax Finance社区投票通过用2000万FRAX回购FXS的提案:6月30日消息,混合算法稳定币协议FraxFinance社区在本周投票通过了关于建议使用2000万FRAX在3天至30天的时间内通过Fraxswap(FRAX-FXSTWAMM)回购FXS的提案,回购的代币将被销毁、放入veFXS收益中或保留在财库中,具体会在未来再进行治理。

根据Etherscan数据,FXS目前的最大总供应量为逾9982万枚。此前报道,本月上旬,FraxFinance联合创始人SamKazemian和Travis Moore发布了该治理提案,提案认为,FXS价格被低估,而此时回购是资本或利润的最佳用途。[2022/6/30 1:42:00]

漏洞原理

Redacted Cartel推出提供veRBN、veFXS、veBAL贿赂市场的V2版:金色财经消息,DeFi项目Redacted Cartel(BTRFLY)宣布推出V2版本,V2带来了一个允许veRBN、veFXS、veBAL贿赂(bribe)的市场Hidden Hand。在Hidden Hand中,用户可将拥有投票权的资产委托给HiddenHand,然后Hidden Hand会将投票权出价卖给外部需要的协议,之后HiddenHand再将奖励分配给用户、Redacted Treasury和BTRFLY持有者。[2022/4/12 14:20:03]

漏洞点在于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代币而获利。

简而言之,典型的重入漏洞场景,教科书级的案例。

标签:SURURGSURGEFXSnsure币发行量burger币团队Surge Inufxs币价格

莱特币价格热门资讯
CoinW将于10月12日12:00全球首发Amasa,交易空投8000 USDT!

亲爱的CoinW用户:币赢CoinW将于2021年10月12日12:00在创新区上线Amasa,开通AMAS/USDT交易对.

1900/1/1 0:00:00
KEN:AAVE v2 - white paper

本文作者:bixia1994简介AAVEv2版本相较于v1版本新增了两个重要变化:aToken变为可升级token债务tokenflashloanV2针对债务Token:用户的债务以债务Toke.

1900/1/1 0:00:00
DORA:Dora Factory 已部署首个 Substrate 测试网并运行二次方资助模块,将开启第 2 轮社区二次方投票

链闻消息,去中心化治理基础设施DoraFactory已部署首个Substrate测试网络DoraFactoryTestnet-0.

1900/1/1 0:00:00
ETH2:Gate.io 已发EPK、NAFT、REVO、BENQI净买入赛活动奖励公告

Gate.ioEPK、NAFT、REVO、BENQI净买入赛已圆满结束,根据活动规则,我们已为符合规则的用户发放了活动奖励。用户可进入“钱包—账单明细”查询奖励发放情况.

1900/1/1 0:00:00
HTT:关于IoTeX(IOTX)主网升级暂停充提的公告

尊敬的中币用户:????由于IoTeX主网升级,中币将于香港时间2021年10月11日23:00暂停IOTX充值和提币业务.

1900/1/1 0:00:00
COM:XT关于暂停DCR、DEL充提的公告

尊敬的XT用户:因DCR、DEL钱包维护,XT.COM现已暂停DCR、DEL充提业务。给您带来的不便,请您谅解!感谢您对XT.COM的支持与信任.

1900/1/1 0:00:00