首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

热点事件 又报智能合约漏洞!这一漏洞到底怎么回事?

【热点事件】又报智能合约漏洞!这一漏洞到底怎么回事?

2018-04-26 区块财经

全世界只有不到5 %的人关注了区块财经

你真是个特别的人

在‘BatchOverFlow’漏洞中,当用户输入转账的数值超过设定的最大值,只要用户账户余额大于0,就可以直接将巨额的币转走。

4月25日早间,各数字货币交易平台,均发出公告,暂停所有币种的充提币业务。

另据慢雾区透露,SMT发现与前几天爆出的美图BEC代币类似的安全漏洞。我们可以通过BEC的漏洞来透视这一以太坊智能合约漏洞到底是怎么回事?

在BEC漏洞事件后,PeckShield团队随后发布安全报告,提到黑客利用in-the-wild手段抓取以太坊ERC-20 智能合约中的‘BatchOverFlow’这个整数溢出漏洞来进行攻击。

PeckShield 的安全预警报告中提到了该漏洞的具体细节,这个漏洞出现在 BEC 智能合约的batchTransfer 函数当中,代码如下图所示。

大家请注意第 257 行,cnt 和 _value 的计算结果生成了局部变量。第二个参数,即 _value,,可以是一个任意的 256 字节整数,就比如是:0x8000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000(63 个 0)。

通过将两个 _receivers 注入到 batchTranser(),再加上这个极其大的 _value,我们就能使得量溢出,将其 amount 的量变成 0。通过将量回归到 0,攻击者就可以绕过 258 行到 259 行的合理性检测,使得 261 行的差值变得不再相关。

最后,出现了一个非常有趣的结果:你们可以看 262 行到 265 行,两个 receriver 的余额上增加了超级大的 _value,而这一切都不会花费攻击者钱包里哪怕一毛钱!

综合起来就是,黑客利用以太坊ERC-20智能合约中BatchOverFlow漏洞中的数据溢出的漏洞,攻击了美链BEC的智能合约,成功地向两个地址转出了天量级别的BEC代币。

据了解,黑客可以通过转账的手段生成合约中不存在的、巨量的Token并将其转入正常账户,并且账户中收到的Token可以正常地转入交易所进行交易,与真的Token无差别。

资深区块链专家沈园用银行转账系统给出了一个通俗解释,“假设银行系统的转账,每次限制在1亿元内。如果一个用户输入的数字,超过了1亿,银行有很多方式来规避这个问题。但在BEC‘BatchOverFlow’漏洞中,当用户输入转账的数值超过设定的最大值,只要用户账户余额大于0,就可以直接将巨额的币转走”。

随后 PeckShield 团队利用自动化系统扫遍了以太坊智能合约并对它们进行分析。结果发现,有超过 12 个 ERC-20智能合约都存在BatchOverFlow安全隐患。其中包括已经在交易所上进行交易币种。

PeckShield团队表示,出于安全考虑,暂时不能曝光这批项目的名称,但已与相关项目团队进行了联系。这里面可能就包括今天爆出的SMT项目。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180426A0JXA700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券