web中间价apache渗透
字数 1729 2025-08-09 18:44:06

Apache Web服务器渗透测试全面指南

1. Apache简介与基础

Apache是世界使用排名第一的Web服务器软件,具有以下特性:

  • 跨平台性:可运行在几乎所有广泛使用的计算机平台上
  • 多语言支持:支持HTML、PHP、Perl、Python等语言
  • 高性能:快速、可靠且可通过简单API扩展
  • 最新协议支持:支持HTTP/1.1通信协议
  • 多种功能:支持虚拟主机、HTTP认证、SSL、FastCGI等

Apache目录结构:

bin/        # 常用命令工具,如httpd
cgi-bin/    # Linux常用命令,如xxx.sh
conf/       # 配置文件,如httpd.conf
error/      # 错误记录
htdocs/     # 网站源码
icons/      # 网站图标
logs/       # 日志
manual/     # 手册
modules/    # 扩展模块

2. Apache解析漏洞(CVE-2017-15715)

漏洞简介

  • 别名:未知扩展名漏洞
  • 影响范围:Apache 1.x、2.x
  • 漏洞成因:Apache默认允许文件有多个以点分隔的后缀,从右向左识别可解析的后缀

漏洞原理

当请求shell.php.xxx.yyy文件时:

  1. 先尝试解析.yyy后缀 → 无法识别
  2. 向左尝试.xxx后缀 → 无法识别
  3. 向左尝试.php后缀 → 可识别,作为PHP文件执行

复现步骤

  1. 上传包含PHP代码的图片文件(如shell.php.jpg
  2. 访问该文件,Apache会将其作为PHP文件解析执行

利用条件

  1. 使用module模式(PHP5.3以下版本与Apache联动时)
  2. 文件名至少包含一个.php后缀
  3. 网站上传功能仅检查最后一个后缀名

扩展知识

  • Apache支持的扩展名定义在conf/mime.types文件中
  • 在Kali Linux中,配置文件位于/etc/apache2/
  • PHP作为Apache模块运行时,相关配置在mods-enabled/目录下

3. AddHandler导致的解析漏洞

漏洞简介

由于不安全配置导致,常见于运维人员添加如下配置:

AddHandler application/x-httpd-php .php

此配置表示只要文件名中包含.php,就会作为PHP文件执行,与位置无关。

复现步骤

  1. 创建如shell.php.jpg的文件
  2. 在配置中添加上述AddHandler指令
  3. 重启Apache服务
  4. 访问该文件,会被作为PHP执行

4. 罕见后缀解析漏洞

Apache默认支持多种PHP相关后缀:

  • .php3, .php4, .php5
  • .phtml, .phar

查看支持的类型:

cat /etc/mime.types | grep php

其他危险配置

  1. 特定文件匹配执行:
<FilesMatch "baixi.jpg">
    SetHandler application/x-httpd-php
</FilesMatch>
  1. 添加处理器:
AddHandler php5-script .php
  1. 添加类型:
AddType application/x-httpd-php .jpg

5. 目录遍历漏洞

漏洞简介

当Web服务器配置不当且目录中不存在默认文件(如index.html)时,Apache会列出当前目录下所有文件,导致敏感信息泄露。

发现方法

在搜索引擎中使用:

intitle:index of

6. Apache HTTPD换行解析漏洞(CVE-2017-15715)

漏洞详情

  • 影响版本:Apache 2.4.0~2.4.29
  • 漏洞原理:正则表达式\.php$中的$会匹配字符串结尾的换行符(%0A),因此shell.php%0A也会被识别为PHP文件

复现步骤

  1. 尝试上传PHP文件被拦截
  2. 使用Burp Suite抓包修改上传请求
  3. 将文件名后缀中的点(.)的hex值2E改为换行符0A
  4. 发送修改后的请求
  5. 访问上传的文件(需包含%0A

注意:此漏洞在Windows环境下无法复现,因为Windows不允许文件名以换行符结尾。

7. Apache SSI远程命令执行漏洞

漏洞简介

  • 影响版本:所有支持SSI与CGI的Apache版本
  • 漏洞原理:当服务器开启SSI与CGI支持时,可上传.shtml文件并利用SSI指令执行命令

SSI指令

<!--#exec cmd="command" -->

复现方法一

  1. 创建包含SSI指令的文件:
<!--#exec cmd="whoami" -->
  1. 上传该文件
  2. 访问上传的文件,将执行指定命令

复现方法二

  1. 上传任意文件并使用Burp Suite拦截
  2. 修改文件内容为SSI指令
  3. 重放请求完成上传
  4. 访问文件执行命令

8. 防御建议

  1. 及时更新Apache到最新版本
  2. 谨慎配置AddHandler和AddType指令
  3. 禁用不必要的模块(如SSI、CGI)
  4. 严格限制上传文件类型
  5. 确保目录有默认页面防止目录遍历
  6. 使用白名单而非黑名单验证文件上传
  7. 对用户上传的文件进行重命名
  8. 限制上传目录的执行权限

通过全面了解这些Apache相关的漏洞和攻击技术,安全人员可以更好地评估和加固Web服务器的安全性。

Apache Web服务器渗透测试全面指南 1. Apache简介与基础 Apache是世界使用排名第一的Web服务器软件,具有以下特性: 跨平台性:可运行在几乎所有广泛使用的计算机平台上 多语言支持:支持HTML、PHP、Perl、Python等语言 高性能:快速、可靠且可通过简单API扩展 最新协议支持:支持HTTP/1.1通信协议 多种功能:支持虚拟主机、HTTP认证、SSL、FastCGI等 Apache目录结构: 2. Apache解析漏洞(CVE-2017-15715) 漏洞简介 别名:未知扩展名漏洞 影响范围:Apache 1.x、2.x 漏洞成因:Apache默认允许文件有多个以点分隔的后缀,从右向左识别可解析的后缀 漏洞原理 当请求 shell.php.xxx.yyy 文件时: 先尝试解析 .yyy 后缀 → 无法识别 向左尝试 .xxx 后缀 → 无法识别 向左尝试 .php 后缀 → 可识别,作为PHP文件执行 复现步骤 上传包含PHP代码的图片文件(如 shell.php.jpg ) 访问该文件,Apache会将其作为PHP文件解析执行 利用条件 使用module模式(PHP5.3以下版本与Apache联动时) 文件名至少包含一个 .php 后缀 网站上传功能仅检查最后一个后缀名 扩展知识 Apache支持的扩展名定义在 conf/mime.types 文件中 在Kali Linux中,配置文件位于 /etc/apache2/ PHP作为Apache模块运行时,相关配置在 mods-enabled/ 目录下 3. AddHandler导致的解析漏洞 漏洞简介 由于不安全配置导致,常见于运维人员添加如下配置: 此配置表示只要文件名中包含 .php ,就会作为PHP文件执行,与位置无关。 复现步骤 创建如 shell.php.jpg 的文件 在配置中添加上述AddHandler指令 重启Apache服务 访问该文件,会被作为PHP执行 4. 罕见后缀解析漏洞 Apache默认支持多种PHP相关后缀: .php3 , .php4 , .php5 .phtml , .phar 查看支持的类型: 其他危险配置 特定文件匹配执行: 添加处理器: 添加类型: 5. 目录遍历漏洞 漏洞简介 当Web服务器配置不当且目录中不存在默认文件(如index.html)时,Apache会列出当前目录下所有文件,导致敏感信息泄露。 发现方法 在搜索引擎中使用: 6. Apache HTTPD换行解析漏洞(CVE-2017-15715) 漏洞详情 影响版本:Apache 2.4.0~2.4.29 漏洞原理:正则表达式 \.php$ 中的 $ 会匹配字符串结尾的换行符( %0A ),因此 shell.php%0A 也会被识别为PHP文件 复现步骤 尝试上传PHP文件被拦截 使用Burp Suite抓包修改上传请求 将文件名后缀中的点( . )的hex值 2E 改为换行符 0A 发送修改后的请求 访问上传的文件(需包含 %0A ) 注意:此漏洞在Windows环境下无法复现,因为Windows不允许文件名以换行符结尾。 7. Apache SSI远程命令执行漏洞 漏洞简介 影响版本:所有支持SSI与CGI的Apache版本 漏洞原理:当服务器开启SSI与CGI支持时,可上传 .shtml 文件并利用SSI指令执行命令 SSI指令 复现方法一 创建包含SSI指令的文件: 上传该文件 访问上传的文件,将执行指定命令 复现方法二 上传任意文件并使用Burp Suite拦截 修改文件内容为SSI指令 重放请求完成上传 访问文件执行命令 8. 防御建议 及时更新Apache到最新版本 谨慎配置AddHandler和AddType指令 禁用不必要的模块(如SSI、CGI) 严格限制上传文件类型 确保目录有默认页面防止目录遍历 使用白名单而非黑名单验证文件上传 对用户上传的文件进行重命名 限制上传目录的执行权限 通过全面了解这些Apache相关的漏洞和攻击技术,安全人员可以更好地评估和加固Web服务器的安全性。