I like to buy or smth

Interacting with the program

The remote program gives us a wallet, and the value changes if we sell something or when we buy something.

We can buy the flag but we don't have that much money :/

The only thing it allows us to to sell is nullbytes, but it won't buy it for mor than $0.

Int Underflow

What we could do where is appeal to a technique called integer Underflow. But first, let's understand what a int overflow is.

The maxium number that can be represented in a int is 2147483647 and if we add 1 to it, this will cause the signal to invert and we would get -2147483648 as the result.

The opposite thing happens when we subtract 1 from -2147483647, which results in 2147483648, that's an int underflow.

If we sell a nullbyte for -2147483647, when the program tries to subtract the value of the flag the integer would underflow and our wallet's new amount would be over 2 billion dollars, which is way more than enough to buy the flag.

Exploit

Last updated