智能合约漏洞中的整数溢出BUG介绍


     近几年来,各大中型CTF(CaptureTheFlag,中文版通常翻译为夺旗比赛,在网络信息安全行业指的是网络信息安全技术人员相互间进行技术竞技的比赛形式)比赛中有块链攻防的形象,而且出现的主题大多是块链智能合约攻防。该系列文章主要以智能合约攻防为中心,分析智能合约攻防的要点,前两篇共享合约反编译、反编辑的基本内容。在下一篇文章中,我们将继续分享CTF比赛中智能合约的常见问题类型(重新进入、整数溢出、空投、随机数控等)和解决问题的想法,相信会给读者带来不同的收获。


在上一篇文章中,我们分享了CTF比赛中经常考试的重新进入脆弱性问题类型,这篇继续分享CTF比赛中的整数溢出问题类型,也是比较常见的问题类型,当然,很多CTF智能合约问题不仅仅是单个脆弱性的攻防,还有很多脆弱性的组合。这篇以2018年WCTF上HelluminarBank主题为例子,分享智能合约整数溢出的问题类型。解决这个问题不仅需要整数溢出攻击,还需要变量垄断、权限设定等多种攻击技术。


团队需要反向施工字节代码,并应用以下攻击:整数溢出绕过存款期限,存储溢出,覆盖银行业主;存储访问权限泄露私有属性

配置自杀合约,强制将eth发送到目标合约(解决余额差异)未必需要意想不到的以太攻击,应用andhdroww()和unvested()调用,可以适当平衡。因为问题解决方案的巨大问题,andhdroww()函数可能不会更改balances组。但仍需提前利用整数溢出。


合约的说明。HelluminarBank很小很特别。其工作方式如下:任何人都可以投资金额,必须指定存款期限(此前存款被锁定)存款期限必须比以前客户的存款期限至少长一年每笔存款分配一个账户账户0包括31338rngi,银行所有者(合同制作者)锁定多年存款期限为一年(如果不提款),银行所有者可以没收存款。目标是破解这家银行,清空剩馀金额。如果成功,机器人将向您发送交易数据中的标志。

分享: