15.Naught Coin
2023-06-23 20:57:48
# 04.Ethernaut CTF
Naught Coin
题目
目标:将player(即我们的钱包用户)的token全部转出去
1 | // SPDX-License-Identifier: MIT |
分析
本道题是考察我们对ERC20标准的认识。
本题实现ERC20标准,发行了一些代币,这些代币全部给到了我们的钱包地址,实现了一个方法transfer(address,_to, uint256 _value)
,然后修饰器lockTokens限制了它:只能在10年之后才可以调用transfer方法转出去代币。当然我们不能等这么久,得想办法绕过去。
我们知道,ERC20标准有两个转账函数:transfer和transferFrom。本题中只override和限制了transfer,那么我们是可以通过transferFrom来进行转账的。对于transferFrom:转账之前需要进行授权,授权给一个代理人,允许他转出我们一个金额,当然这个代理人可以是我们自己。
因此,我们只需要approve自己,然后自己再调用transferFrom函数即可转出代币
本题是只重写和限制了transfer而没有对transferFrom进行处理,因此可以这么解题
做题
获取实例,做题
通过