Skip to content

Latest commit

 

History

History
30 lines (16 loc) · 1.11 KB

README.md

File metadata and controls

30 lines (16 loc) · 1.11 KB

Telephone

题目描述

原题 in Sepolia

获得合约的owner权限来完成这一关

运行

根据Foundry 官方文档配置好运行环境后,于本项目下执行下列命令:

$ cd WTF-CTF

$ forge test -C src/Ethernaut/Telephone -vvvvv

功能简述

更换合约owner只能通过changeOwner函数,当交易的发送者和交易的原始发送者不同时,发生owner变动。

solidity中,使用tx.origin可以获得启动交易的原始地址,它与msg.sender十分相似,下面我们用一个例子来区分它们之间不同的地方。

如果用户A调用了B合约,再通过B合约调用了C合约,那么在C合约看来,msg.sender就是B合约,而tx.origin就是用户A。

img

所以我们只需要写一个合约,让这个合约调用题目中的changeOwner方法即可。