Skip to content

Latest commit

 

History

History
33 lines (20 loc) · 1.21 KB

README.md

File metadata and controls

33 lines (20 loc) · 1.21 KB

Elevator

题目描述

原题 in Sepolia

电梯不会让你达到大楼顶部, 对吧?

运行

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

$ cd WTF-CTF

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

功能简述

只要两次调用isLastFloor方法返回的bool值不同即可。

而题目定义的isLastFloor接口并没有限制函数类型,所以每次调用我们可以通过isLastFloor方法改变攻击合约中的值,来保证两次调用的返回值不同。

interface Building {
    function isLastFloor(uint256) external returns (bool);
}

你可以在接口使用 view 函数修改器来防止状态被篡改. pure 修改器也可以防止状态被篡改. 认真阅读 Solidity's documentation 并学习注意事项.

完成这一关的另一个方法是构建一个 view 函数, 这个函数根据不同的输入数据返回不同的结果, 但是不更改状态, 比如 gasleft().我们将在后续的某道题中使用该方法。