前言
8月17日,BSC链上的XSURGE协议遭到闪电贷攻击,损失超过500万美元。对此,知道创宇区块链安全实验室对攻击流程和代码细节进行了全盘梳理。
全盘梳理
基础信息
-攻击tx:0x7e2a6ec08464e8e0118368cb933dc64ed9ce36445ecf9c49cacb970ea78531d2-攻击合约:
0x1514AAA4dCF56c4Aa90da6a4ed19118E6800dc46
-SurgeToken:
0xE1E1Aa58983F6b8eE8E4eCD206ceA6578F036c21
PayYoda基础钱包应用部分已于4月20日开放体验:据官方公告,PayYoda发布生态成长三部曲计划,即PayYoda DAO社区治理基金、聚合应用开发、头部交易所上线,正在稳步推进中。PayYoda DAO社区治理基金新一轮活动正在进行中,基础钱包应用部分已于4月20日22时(UTC-5)开放体验,欢迎广大用户参与体验。与此同时,为推动全球布局战略规划,PayYoda计划将于5月份开启上线全球各大行业头部交易所计划。详情见官网。[2021/4/21 20:42:32]
攻击流程
HecoPayYoda宣布当前社区人数已达到9000人:HecoPayYoda宣布当前社区人数已达到9000人,即将突破10000。据了解,HYOT是基于Heco的去中心化治理令牌,专注于DeFi应用程序的扩展和构建,旨在构建一个完整的开放金融生态系统。易流通,易存储,稀缺和防伪是HYOT的核心优势。[2021/4/5 19:46:38]
这里有个小细节,代币转移流程中的顺序是按照事件先后顺序来显示的,而重入之后的买操作引起的事件会在卖操作引起的事件之前,所以在流程中看到的每一个单独的重入攻击中是SURGE的买入发生在卖出之前。
漏洞原理
漏洞点在于SurgeToken合约中的sell()函数,其中对调用者msg.sender的BNB转账采用的call()函数,并且在转账之后才更新代币总量_totalSupply,是典型的重入漏洞场景。
动态 | 电信巨头Vodacam和MTN正研究区块链技术的好处:电信巨头Vodacom和MTN正试图尝试如何使用区块链技术来增强载波间的结算和号码移植。MTN消息来源表示,该电信巨头一直在试验如何通过智能合约在漫游交易自动化中利用区块链技术,以确保快速的号码移植和有效的运营商间安排。[2018/8/6]
虽然\nsell()函数使用了nonReentrant修饰防止了重入,但purchase()函数并没有。重入转回BNB给合约,触发\nfallback函数调用purchase(),由于_totalSupply尚未减去卖出量,而导致可买入相较正常更多的SURGE代币。
AOFEX于5月18日上线BAKE、CHR、AXS、QUICK?:据官方消息,AOFEX交易所于5月18日正式上线BAKE、CHR、AXS、QUICK?,AQ及USDT交易区15:00开放上线BAKE,15:30开放上线CHR交易,16:00开放上线AXS以及16:30开放上线QUICK交易。
?BakerySwap是一个币安智能链上带有流动性挖矿的自动做市商。Chromia(是一个新的区块链平台,用于去中心化应用程序。Axie Infinity是在以太坊区块链上构建的,受神奇宝贝启发的数字宠物世界。QuickSwap是自动做市商的首批平台之一,是Uniswap的分叉项目。
?AOFEX数字货币金融衍生品交易所,旨在为用户提供优质服务和资产安全保障。[2021/5/18 22:14:31]
复现
价格分析
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代币而获利。
简而言之,典型的重入漏洞场景,教科书级的案例。
都说“科技改变生活”,随着智能设备、移动支付的普及,现在出门只需带上手机,就能应付绝大多数支付场景.
原地址:https://medium.com/@behindthehandle/behind-the-handle-2-puniaviision-68bcca078ceb作者:BehindThe.
2021年,在NFT的风口效应之下,链游、加密艺术、IP赋能等细分领域创新不断,元宇宙更是成为行业的终极愿景.
撰文:Footprint分析师Vincy数据来源:FootprintAnalyticsGameFiDashboard据Newzoo的《2021全球游戏市场报告》的数据显示.
“这是你最后的机会,一旦做出,再无回头之路。吞下蓝色药丸,一切就此结束,你在自己的床上醒来,继续相信你愿意相信的一切。吞下红色药丸,你将留在仙境,我会让你看看兔子洞究竟有多深.
据欧科云链链上大师数据显示,截至今日10时30分,以太坊2.0存款合约地址已收到776.75万ETH,占当前以太坊供应量的6.63%。大量质押的ETH也催生出了流动性质押这一庞大的市场.