01.BabyOtter
2023-10-06 15:11:32 # 23.0xHackedCTF

BabyOtter

这是应该说是一个算法题,很明显需要溢出,因为精度问题,uint256(-1)/0x1337并不行。没有写出一个脚本找出X,而是找到了其中的数学规律。

1
2
3
4
5
//387 第12次溢出
//362 第24次溢出
//337 第36次溢出
...
//12 第192溢出

以上是一个循环,之后每个循环的末尾的数减1。

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

interface IBabyOtter {
function solve(uint x) external;
}

contract Exploit {
function exploit() public {
uint number = 106517423012574869748253447278778772725360170890836257832597187972312850502279;
address target = 0x4e309C767Acc9f9366d75C186454ed205d5Eeee3;
IBabyOtter(target).solve(number);
}
}