Apache HTTP Server路径穿越漏洞(CVE-2021-41773)
一、漏洞概述
CVE-2021-41773是Apache HTTP Server 2.4.49版本中存在的一个高危路径穿越漏洞。攻击者可利用此漏洞绕过服务器的路径访问限制,读取或执行目标服务器上的任意文件。若服务器配置允许执行CGI脚本(如mod_cgi模块启用),攻击者甚至可能实现远程代码执行(RCE),完全控制服务器。
二、影响版本
受影响版本:Apache HTTP Server 2.4.49。
后续修复版本:Apache HTTP Server 2.4.50(但该版本仍存在修复不彻底的问题,需升级至2.4.51以修复CVE-2021-42013)。
三、漏洞原理
1.路径规范化缺陷: Apache在处理客户端请求时,会对URL路径进行规范化(Normalization),包括解析../或./等路径遍历符号。但在2.4.49版本中,规范化逻辑存在缺陷,未正确过滤某些百分比编码字符(如%2e对应.,%2f对应/)。
2.绕过路径安全检查: 攻击者可通过构造包含编码字符的恶意路径(如/%2e%2e/代替../),绕过服务器的路径遍历防护机制,访问服务器文件系统中的敏感文件。
示例请求:
GET /icons/.%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1
Host: vulnerable-server.com
此请求可能使Apache误解析为/../../etc/passwd,返回系统敏感文件。
3.远程代码执行条件: 若服务器配置中启用了mod_cgi模块,且攻击者能访问到可执行的CGI目录(如/cgi-bin/),则可进一步构造恶意请求执行任意命令:
POST /cgi-bin/.%2e/%2e%2e/%2e%2e/bin/sh HTTP/1.1
Host: vulnerable-server.com
Content-Length: 25
echo; cat /etc/passwd
四、漏洞影响
敏感文件泄露:读取/etc/passwd、配置文件(如.htaccess)、数据库凭证等。
远程代码执行(RCE):在启用CGI且目录权限宽松的情况下,攻击者可执行系统命令。
服务器完全沦陷:结合其他漏洞或利用链,可能导致服务器被完全控制。
五、漏洞复现
启动vulhub靶场环境后访问:http://192.168.111.146:8080
已成功披露:/etc/passwd在服务器上启用 mods cgi 或 cgid 后,此路径遍历漏洞将允许执行任意命令:
六、修复方案
1.升级Apache版本:
官方已发布补丁,需升级至2.4.51或更高版本:
2.禁用危险配置:
关闭不必要的模块(如mod_cgi),或严格限制CGI目录的权限。
确保Require all denied覆盖默认目录权限。
3.强化路径规范化逻辑:
确保Apache在处理路径时严格过滤所有编码后的路径遍历符号(如%2e、%5c等)。
七、防御建议
输入过滤:对用户请求的URL进行严格校验,拒绝包含../或其编码形式的请求。
最小权限原则:运行Apache的用户(如www-data)仅赋予必要目录的读取权限。
日志监控:实时审计访问日志,发现异常路径请求(如多次出现%2e%2e)。
原文始发于微信公众号(智检安全):Apache HTTP Server路径穿越漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论