一、解析漏洞(最知名的类型之一)

解析漏洞主要源于 Apache 对 “文件名后缀” 的解析逻辑缺陷,或与脚本引擎(如 PHP)的配置结合产生的问题,导致攻击者可构造特殊文件名绕过解析限制,执行恶意代码。

1. 多后缀解析漏洞(典型场景)

  • 原理:Apache 解析文件时,会从右向左识别文件名中的后缀,直到匹配到配置中定义的 “可执行后缀”(如 .php)。若配置中存在 AddHandler application/x-httpd-php .php,则类似 test.php.xxxtest.php.jpg 的文件会被当作 PHP 脚本解析(因最右侧的 .xxx 不被识别,向左匹配到 .php)。
  • 触发条件:Apache 与 PHP 结合时,httpd.conf 或 .htaccess 中对脚本后缀的配置不当(如未严格限制解析范围)。
  • 影响:攻击者可上传 “看似非脚本文件”(如 shell.php.jpg),被服务器解析为 PHP 执行,实现文件上传攻击。

2. 特殊字符解析漏洞

  • 原理:早期 Apache 版本(如 2.0.x、2.2.x)对文件名中的特殊字符(如 %00 空字节、\ 反斜杠)处理不当,导致解析逻辑异常。例如,test.php\0.jpg 会被截断为 test.php 并解析。
  • 典型案例:CVE-2007-1863(Apache 2.2.4 及之前版本的空字节解析漏洞)。

二、目录遍历与路径穿越漏洞

这类漏洞源于 Apache 对 “路径访问控制” 的缺陷,允许攻击者访问未授权的目录或文件。

1. 目录遍历漏洞

  • 原理:若 Apache 配置中启用了 Options Indexes(允许目录列表),且未限制敏感目录(如 /etc//root/),攻击者可直接通过 URL 访问目录结构,泄露文件列表。
  • 风险:配合其他漏洞(如文件包含)时,可能进一步读取敏感文件(如 /etc/passwd)。

2. 路径穿越漏洞

  • 原理:Apache 对 URL 中的 ../..\ 等路径跳转字符过滤不严,攻击者可构造 ../../etc/passwd 等路径,绕过访问限制读取系统文件。
  • 典型案例:早期 Apache 模块(如 mod_cgi)在处理 CGI 脚本时,若未正确解析路径,可能导致路径穿越。

三、CRLF 注入漏洞

CRLF(Carriage Return + Line Feed,回车换行)注入漏洞源于 Apache 对 HTTP 请求头的处理逻辑,允许攻击者注入恶意换行符,篡改响应或执行其他操作。

  • 原理:Apache 在处理 HTTP 头(如 LocationSet-Cookie)时,若未过滤用户可控输入中的 \r\n 字符,攻击者可注入换行符构造额外的响应头或响应体。
  • 影响:可能导致会话固定、缓存污染、XSS 等攻击。例如,注入 Set-Cookie: sessionid=恶意值 覆盖正常会话。

四、拒绝服务(DoS)漏洞

Apache 曾多次出现因协议处理或模块逻辑缺陷导致的 DoS 漏洞,攻击者可通过发送特殊请求耗尽服务器资源。

  • 典型案例
    • CVE-2011-3192:Apache 2.2.x 版本中 mod_deflate 模块在处理压缩请求时存在内存泄漏,大量请求可导致服务器内存耗尽。
    • CVE-2019-0211:Apache 2.4.17-2.4.38 中 mod_proxy 模块处理反向代理请求时,存在整数溢出,可导致进程崩溃。

五、模块相关漏洞

Apache 的功能扩展依赖模块(如 mod_proxymod_rewritemod_ssl 等),模块的缺陷也可能引入漏洞。

  • mod_proxy 反向代理漏洞:若配置不当(如未限制转发目标),可能被利用进行 SSRF(服务器端请求伪造),攻击内网服务。
  • mod_ssl 漏洞:早期版本中存在 SSL/TLS 协议实现缺陷(如 Heartbleed 漏洞虽属于 OpenSSL,但常与 Apache 结合部署),导致敏感数据泄露。
  • mod_rewrite 配置错误:规则编写不当可能被绕过,导致访问控制失效(如允许未授权用户访问受保护路径)。

六、权限与配置缺陷(非代码漏洞,但高发)

多数 Apache 安全问题并非源于代码漏洞,而是配置不当

  • 运行权限过高:若 Apache 以 root 或高权限用户运行,被攻击后可能直接控制服务器。
  • AllowOverride All 风险:允许 .htaccess 文件覆盖主配置,攻击者若上传恶意 .htaccess(如设置 AddType application/x-httpd-php .txt),可改变文件解析规则。
  • 未限制 CGI 脚本执行mod_cgi 模块未限制危险 CGI 脚本,可能导致命令执行。
文章作者: QiaoShen
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QiaoShen-World
漏洞详解 实景渗透基础 中间件 渗透 姿势
喜欢就支持一下吧