这个题目比较特殊和新颖吧,不过也是曾经见过的题目了。
题目自实现了一套http请求的代码,我们发送给程序http请求报文,程序解析并返回给我们结果。
逆向过程稍微麻烦一点,其实程序要求的输入跟正常http请求头没啥区别。
漏洞点在于程序这里使用popen来打开我们请求的文件路径,这里popen提供了命令注入的可能。只要绕过一个check的检查即可:
check过滤了/bin/sh这种还有一些命令执行的危险字符
不过我们仍然可以通过外带文件的方式来得到flag
攻击思路:
1、首先注入cp命令复制flag到一个可以直接通过get请求得到的文件目录下
2、直接请求外带出来的flag即可。
因为程序工作目录在/home/ctf/html下面,所以把flag外带到这里就行
完整exp:
这里本地调试需要自行准备文件目录环境。
By Del0n1x
Keyboard