07.Snakes
2023-10-06 15:17:37 # 23.0xHackedCTF

Snakes

这道题给了一大串字节码(其实是initcode),然后部署,调用输入的code参数,需要返回true。

经过反编译分析,返现参数code只有高8字节有用,多余内容会截断。分析题意只要程序执行到STOP操作码就可以了,这道题随便输入都很容易可以到STOP操作码,并且有很多STOP操作码的地方,个人感觉题目出得不好,随便试了几个参数code都可以通过。

题外话:即使本题找到STOP的条件很苛刻,也可以直接爆破,毕竟8字节的也不多,2**64种可能性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

interface ISnakes {
function solve(bytes memory) external;
}

contract Exploit {

// construct() {} // construct not allowed

function exploit() public {
// write code here
address target = 0x827bB86B1594C77C9Ef9c126Bf1b0D46DC81aEEA;
bytes memory code = hex"12345678";
ISnakes(target).solve(code);
}
}