Jarvis OJ---Backdoor

window下的一个程序,题目中说有个参数可以触发该程序执行后门操作,IDA反编译,进入关键函数,猜测应该是v13这个参数有问题

Jarvis OJ---Backdoor_第1张图片
image.png

而那个offset就是padding的长度,我们的输入就是offest ^ 0x6443,一开始我以为是在main里栈溢出,一直不成功,突然发现在栈布局里,offset就在dest的后面。如果用dest溢出去覆盖ret,那offset会被修改,直接挂掉。所以应该是在sub_401000这个函数里面溢出

Jarvis OJ---Backdoor_第2张图片
image.png

所以offset = padding = 0x20+4

import hashlib

offset = 0x20+4
a=hex(offset^0x6443)[2:]
a=a.decode('hex')[::-1]
print "PCTF{" + hashlib.sha256(a).hexdigest()+"}"

你可能感兴趣的:(Jarvis OJ---Backdoor)