《表1 重入漏洞代码段:智能合约的安全研究现状与检测方法分析综述》

《表1 重入漏洞代码段:智能合约的安全研究现状与检测方法分析综述》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《智能合约的安全研究现状与检测方法分析综述》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录

如表1所示简单实现了存款和取款的操作。用户可以进行存钱,合约会记录每个用户的存款额度,同时用户可以通过withdraw函数取出自己的存款。这段代码似乎在逻辑上没有漏洞,但是问题出现在第9行,在进行存款回收转账时的call.value()函数上。以太坊中send()和transfer()函数只有2300gas处理转账操作,call.value()函数会将合约剩余的所有gas全部用于外部调用。若转币时目标地址是一个合约,那么会自动调用合约中的fallback函数,若攻击者在部署一个恶意递归调用转账操作的合约,则会将公共钱包合约里的余额全部提出来,对被攻击合约造成巨大损失。