文章目录

Apache Mod CGI提权:bypass disable_function实操

由 晨星运营组 发布

Apache Mod CGI提权

Apache Mod CGI模块相关的路径解析漏洞,是Web场景中绕过disable_function执行系统命令的常用手段。

题目来源于CTFHUB

当Apache配置中启用了以下内容时:

再配合mod_cgi模块,攻击者可以构造特殊的URL请求,如:

%2e是URL编码的 .,这导致路径解析出错,绕过了限制。

利用该路径访问系统中的sh或其他解释器,附带参数来执行任意命令。

例如:

POST /cgi-bin/.%2e/.%2e/bin/sh HTTP/1.1 
Host: vulnerable.com 
Content-Length: 46 
Content-Type: application/x-www-form-urlencoded
echo; echo "Content-Type: text/plain"; echo; id

输出将是CGI响应中的用户身份,即已执行系统命令

当你在php.ini中配置:

disable_functions = system, exec, shell_exec, passthru

这只是让PHP解释器在运行 .php 脚本时不允许调用这些函数,防止PHP代码执行系统命令

但前提是——必须通过PHP来运行的代码才会受这个配置限制

当你启用了Apache的mod_cgi模块后,它的工作方式是:

用户请求example.com/cgi-bin/exploit.sh

Apache检查该文件是可执行文件(比如/bin/sh脚本)

Apache启动新子进程,直接使用操作系统运行该脚本(不是交给PHP)

这时,不会加载PHP,也不会执行php.ini的配置逻辑

点击重置后门目录

点击GetFlag进入到后门,默认index.php

右键插件选择好对应的模式

点击开始后如果条件没问题就会弹终端出来


手动的话需要先上传一个.htaccess文件,参考博客

https://www.cnblogs.com/EddieMurphy-blogs/p/18188088

反弹shell的shell.eddie文件

eddie.php文件


扔到backdoor目录下面,再直接访问eddie.php

会在目录下生成shell.dizzle,再访问shell.dizzle就可以成功反弹shell。

访问eddie.php

蚁剑中刷新目录可以看到执行成功,多出两个文件

--END--


0条评论

发表评论