2015-问鼎杯线下PWN

这题当时没做出了哎。。好吧,其实考察点是整型溢出。。。挺有价值的一题题目。
题目地址:https://github.com/Winter3un/ctf_task
通过逆向得知,题目需要密码,而密码是通过一个算法得到的,要输入一个字符串满足这个算法,但是在32位内,我们的任何输入都满足不了条件,突然发现这边可以进行整型溢出(超过32位的数据,寄存器将丢弃)
那么我们可以构造类似于0x1ae312d386d209这样的数据,高于32位的数据将会被丢弃。即0x1ae312d386d209 == 0xD386D209
exp如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
end = 'D386D209'
# start = 5381
import sys
sys.setrecursionlimit(1000000)
def get(end):
if end == 5381:
return True
if end <5381:
return False
for x in range(1,0xff+1):
if (end - x) % 33 ==0:
flag = get((end - x) / 33)
if flag:
print hex(end),hex(x)
return True
else:
return False
for x in range(0,0xffffff):
tmp = int(hex(x).replace('0x','')+end,16)
if (tmp - 0xa) % 33 ==0:
if get((tmp - 0x0a) / 33):
print hex(tmp),hex(0x0a)
print 'end'
exit(0)

×

你要赏我吃糖果吗?

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
,
隐藏