第十五关:NaughtCoin
本关知识点:
1. 了解erc20代币合约
1. 题目要求
您已经持有这些代币。问题是您只能在 10 年之后才能转移它们。您能尝试将它们转移到另一个地址,以便您可以自由使用它们吗?通过将您的代币余额变为 0 来完成此关卡。
2. 代码功能解读
3. 漏洞分析
绕过检查提前将代币发送给其他地址。
查看引用的erc20合约,不止本人可以发送token。我们把钱授权给其他人,让其他人再转给我就行。
4. 攻击方法
1. 准备好另外一个账户
2. 将合约中的余额批准给另一个账户
3. 切换为另一个账户,将所有token发送给自己
5. 攻击调用图
approve给另一个账户
切换账户后transferFrom发送所有的token给自己
成功
6. 知识点分析
本合约继承了erc20合约,那么我们可以阅读ERC20合约查看可以不用本人直接转账,采用授权给其他人的方法,来提出token。所以,在我们阅读合约的过程中,对继承的合约,或者常见的合约类型进行分析是很重要的一点!
如果对大家有用,请点赞;如果喜欢,请订阅加点赞,会一直更新~