12/08/2018, 18:25

[Write-up] meepwn contract - MEEPWN CTF Qualification Round 2018

https://scoreboard.meepwn.team/task Source code của "gate": pragma solidity ^ 0.4 .18 ; contract Meepwn_Wire { address public entrant ; constructor ( ) { entrant = msg . sender ; } function isAccountAddress ( address addr ) ...

https://scoreboard.meepwn.team/task

Source code của "gate":

pragma solidity ^0.4.18;

contract Meepwn_Wire
{
    address public entrant;
    
    constructor()
    {
        entrant = msg.sender;
    }
    
    function isAccountAddress(address addr) private returns(bool)
    {
        uint x;
        assembly { x := extcodesize(caller) }
        return x == 0;
    }
    
    function exploitMe(bytes8 _key)
    {
        require(msg.sender != tx.origin);
        require(isAccountAddress(msg.sender));
        require(msg.gas % 1337 == 0);
        require(uint64(_key) ^ uint64(sha3(msg.sender)) ^ uint64(sha3(address(this))) == 0x13371337);
        
        entrant = tx.origin;
    }
}

Interface của contract chính:

pragma solidity ^0.4.18;

contract MeePwnMain {

  function getNewInstance() public payable returns(address) {}
  function submitInstance(string email) public returns(bytes32) {}
}

sau khi truy cập đến http://178.128.87.12/smart-contract những việc bạn cần làm như sau (hiện site đã không truy cập được nữa, mình xin phép tóm tắt lại theo...kí ức của mình             </div>
            
            <div class=

0