728x90
Description
Unlock the vault to pass the level!
Code
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract Vault {
bool public locked;
bytes32 private password;
constructor(bytes32 _password) {
locked = true;
password = _password;
}
function unlock(bytes32 _password) public {
if (password == _password) {
locked = false;
}
}
}
Scenario
contract의 변수는 슬롯에 차례대로 저장된다. password 값은 두번째 슬롯, 즉, slot[1]에 저장되어 있다. cast storage 명령어로 두번째 슬롯의 값을 알아낸다.
Exploit
728x90