文章总结: 本文介绍了ApacheModCGI模块的路径解析漏洞,这是一种绕过PHP的disable_function限制执行系统命令的技术。当Apache启用mod_cgi模块并配置特定选项时,攻击者可构造特殊URL请求,利用%2e(URL编码的.)导致路径解析错误,从而访问系统中的shell解释器执行任意命令。文章提供了实战操作步骤,包括使用工具和手动上传文件的方法,最终实现反弹shell获取系统权限。该技术原理是Apache直接运行脚本而不通过PHP解释器,因此不受php.ini中disable_functions配置的限制。 综合评分: 85 文章分类: WEB安全,渗透测试,漏洞分析,实战经验,漏洞POC
Apache Mod CGI提权:bypass disable_function实操
原创
晨星安全团队
晨星安全团队
2025年12月16日 11:45 湖南
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-urlencodedecho; 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–
查看原文:《Apache Mod CGI提权:bypass disable_function实操》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论