中间件安全&CVE复现&IIS&Apache&Tomcat&Nginx漏洞复现
字数 3033 2025-08-10 09:16:21

中间件安全漏洞复现与防御指南

目录

  1. IIS安全漏洞

  2. Nginx安全漏洞

  3. Apache安全漏洞

  4. Tomcat安全漏洞

IIS安全漏洞

短文件漏洞

漏洞描述:IIS短文件名泄露漏洞,攻击者可以利用此漏洞收集服务器上的文件信息。

影响版本:IIS 1.0-10.0

复现步骤

  1. 构造特殊格式的URL请求,如http://target/~1/a.aspx
  2. 根据服务器响应判断文件是否存在

防御措施

  • 禁用短文件名功能
  • 升级到最新版本IIS
  • 使用URL重写规则过滤包含波浪线(~)的请求

文件解析漏洞

漏洞描述:IIS在解析文件时存在缺陷,可能导致非可执行文件被当作脚本执行。

典型场景

  • 上传test.jpg文件,内容包含恶意代码
  • 访问test.jpg/test.php时,代码被执行

防御措施

  • 严格限制上传文件类型
  • 配置Handler映射,确保图片文件不被解析为脚本
  • 设置正确的MIME类型

HTTP.SYS蓝屏崩溃

漏洞描述:IIS的HTTP.SYS组件存在远程拒绝服务漏洞,可导致服务器蓝屏崩溃。

影响版本:特定版本的IIS

防御措施

  • 及时安装微软安全补丁
  • 配置防火墙限制恶意请求
  • 使用WAF防护

CVE-2017-7269

漏洞描述:IIS 6.0 WebDAV远程代码执行漏洞,攻击者可通过特制的PROPFIND请求执行任意代码。

影响版本:IIS 6.0

复现条件

  • 目标服务器运行IIS 6.0
  • 启用了WebDAV扩展

防御措施

  • 禁用WebDAV功能
  • 升级到更高版本IIS
  • 安装微软官方补丁

Nginx安全漏洞

后缀解析漏洞

漏洞描述:Nginx配置不当可能导致文件被错误解析,如将图片文件当作PHP脚本执行。

典型配置错误

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
}

漏洞利用

  1. 上传包含恶意代码的图片文件test.jpg
  2. 访问http://target/test.jpg/.php触发代码执行

防御措施

  • 严格配置location匹配规则
  • 确保$符号不被转义
  • 使用完整路径匹配而非正则匹配

CVE-2013-4547文件名逻辑漏洞

漏洞描述:Nginx 0.8.41-1.4.3/1.5.0-1.5.7版本存在文件名逻辑漏洞,可绕过安全限制。

复现步骤

  1. 上传带有空格和空字节的文件名,如test.gif
  2. 访问http://target/test.gif[0x20][0x00].php
  3. 恶意代码被执行

防御措施

  • 升级到最新版本Nginx
  • 严格验证上传文件名
  • 禁用不必要的HTTP方法

CVE-2021-23017

漏洞描述:Nginx DNS解析漏洞,可导致拒绝服务或远程代码执行。

影响版本:特定版本Nginx

防御措施

  • 升级到修复版本
  • 配置DNS解析超时时间
  • 使用本地hosts文件解析关键域名

CVE-2017-7529

漏洞描述:Nginx范围过滤器整数溢出漏洞,可导致信息泄露。

复现方法

curl -v --header "Range: bytes=-100,-9223372036854775808" http://target/file

防御措施

  • 升级到Nginx 1.13.3或更高版本
  • 禁用不必要的模块
  • 配置WAF过滤恶意Range头

Apache安全漏洞

CVE-2021-42013 RCE

漏洞描述:Apache HTTP Server 2.4.49-2.4.50路径遍历漏洞,可导致远程代码执行。

影响版本:Apache 2.4.49-2.4.50

复现步骤

  1. 构造特殊路径请求:
curl -X POST 'http://target/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh' -d 'echo;id'
  1. 服务器执行id命令并返回结果

防御措施

  • 立即升级到Apache 2.4.51或更高版本
  • 禁用CGI脚本执行
  • 配置严格的目录权限

CVE-2021-41773 目录穿越

漏洞描述:Apache 2.4.49路径规范化缺陷,可导致目录穿越和文件泄露。

复现方法

curl -v --path-as-is "http://target/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd"

防御措施

  • 升级到Apache 2.4.50或更高版本
  • 配置Require all denied保护敏感目录
  • 禁用Alias指令中的危险配置

CVE-2017-15715 换行解析漏洞

漏洞描述:Apache 2.4.0-2.4.29换行解析漏洞,可绕过文件上传限制。

漏洞原理

  • 文件名test.php\x0A被当作test.php解析
  • 绕过上传黑名单限制

防御措施

  • 升级到Apache 2.4.30或更高版本
  • 严格验证上传文件名
  • 使用白名单而非黑名单策略

Tomcat安全漏洞

弱口令攻击

漏洞描述:Tomcat管理界面默认或弱口令可导致未授权访问。

常见弱口令组合

  • tomcat/tomcat
  • admin/admin
  • root/root

攻击步骤

  1. 访问http://target:8080/manager/html
  2. 尝试常见弱口令组合
  3. 登录成功后上传WAR包获取shell

防御措施

  • 修改默认密码为复杂密码
  • 限制管理界面访问IP
  • 禁用不必要的管理功能

CVE-2017-12615 文件上传

漏洞描述:Tomcat 7.0.0-7.0.79版本在启用HTTP PUT方法时可上传恶意JSP文件。

复现步骤

  1. 构造PUT请求上传JSP webshell:
PUT /shell.jsp/ HTTP/1.1
Host: target:8080
Content-Type: application/x-www-form-urlencoded
Content-Length: 100

<% out.println("Hello World"); %>
  1. 访问上传的shell.jsp执行代码

防御措施

  • 升级到Tomcat 7.0.80或更高版本
  • 配置readonlyVirtualDirContext为True
  • 禁用PUT方法

CVE-2020-1938 文件包含

漏洞描述:Tomcat AJP协议(默认8009端口)实现缺陷可导致任意文件读取。

影响版本

  • Tomcat 6
  • Tomcat 7 < 7.0.100
  • Tomcat 8 < 8.5.51
  • Tomcat 9 < 9.0.31

复现方法

python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py target -p 8009 -f WEB-INF/web.xml

防御措施

  • 升级到安全版本
  • 禁用AJP协议
  • 配置AJP协议认证凭证

CVE-2020-9484 反序列化

漏洞描述:Tomcat会话持久化反序列化漏洞,特定条件下可导致RCE。

利用条件

  1. 攻击者可控制服务器文件内容和名称
  2. 使用FileStore配置PersistenceManager
  3. sessionAttributeValueClassNameFilter配置不当
  4. 攻击者知道FileStore存储位置

防御措施

  • 升级到安全版本
  • 配置严格的sessionAttributeValueClassNameFilter
  • 限制文件上传权限

通用防御建议

  1. 及时更新:保持中间件版本为最新稳定版
  2. 最小化原则:禁用不必要的功能和服务
  3. 权限控制:遵循最小权限原则配置服务账户
  4. 日志监控:启用详细日志并定期审计
  5. 网络隔离:将中间件部署在内网,限制外网访问
  6. 安全配置:参考官方安全加固指南进行配置
  7. 漏洞扫描:定期进行安全扫描和渗透测试
  8. 备份策略:建立完善的备份和应急响应机制

通过以上措施,可有效降低中间件安全风险,保护Web应用免受攻击。

中间件安全漏洞复现与防御指南 目录 IIS安全漏洞 短文件漏洞 文件解析漏洞 HTTP.SYS蓝屏崩溃 CVE-2017-7269 Nginx安全漏洞 后缀解析漏洞 CVE-2013-4547文件名逻辑漏洞 CVE-2021-23017 CVE-2017-7529 Apache安全漏洞 CVE-2021-42013 RCE CVE-2021-41773 目录穿越 CVE-2017-15715 换行解析漏洞 Tomcat安全漏洞 弱口令攻击 CVE-2017-12615 文件上传 CVE-2020-1938 文件包含 CVE-2020-9484 反序列化 IIS安全漏洞 短文件漏洞 漏洞描述 :IIS短文件名泄露漏洞,攻击者可以利用此漏洞收集服务器上的文件信息。 影响版本 :IIS 1.0-10.0 复现步骤 : 构造特殊格式的URL请求,如 http://target/~1/a.aspx 根据服务器响应判断文件是否存在 防御措施 : 禁用短文件名功能 升级到最新版本IIS 使用URL重写规则过滤包含波浪线(~)的请求 文件解析漏洞 漏洞描述 :IIS在解析文件时存在缺陷,可能导致非可执行文件被当作脚本执行。 典型场景 : 上传 test.jpg 文件,内容包含恶意代码 访问 test.jpg/test.php 时,代码被执行 防御措施 : 严格限制上传文件类型 配置Handler映射,确保图片文件不被解析为脚本 设置正确的MIME类型 HTTP.SYS蓝屏崩溃 漏洞描述 :IIS的HTTP.SYS组件存在远程拒绝服务漏洞,可导致服务器蓝屏崩溃。 影响版本 :特定版本的IIS 防御措施 : 及时安装微软安全补丁 配置防火墙限制恶意请求 使用WAF防护 CVE-2017-7269 漏洞描述 :IIS 6.0 WebDAV远程代码执行漏洞,攻击者可通过特制的PROPFIND请求执行任意代码。 影响版本 :IIS 6.0 复现条件 : 目标服务器运行IIS 6.0 启用了WebDAV扩展 防御措施 : 禁用WebDAV功能 升级到更高版本IIS 安装微软官方补丁 Nginx安全漏洞 后缀解析漏洞 漏洞描述 :Nginx配置不当可能导致文件被错误解析,如将图片文件当作PHP脚本执行。 典型配置错误 : 漏洞利用 : 上传包含恶意代码的图片文件 test.jpg 访问 http://target/test.jpg/.php 触发代码执行 防御措施 : 严格配置location匹配规则 确保 $ 符号不被转义 使用完整路径匹配而非正则匹配 CVE-2013-4547文件名逻辑漏洞 漏洞描述 :Nginx 0.8.41-1.4.3/1.5.0-1.5.7版本存在文件名逻辑漏洞,可绕过安全限制。 复现步骤 : 上传带有空格和空字节的文件名,如 test.gif 访问 http://target/test.gif[0x20][0x00].php 恶意代码被执行 防御措施 : 升级到最新版本Nginx 严格验证上传文件名 禁用不必要的HTTP方法 CVE-2021-23017 漏洞描述 :Nginx DNS解析漏洞,可导致拒绝服务或远程代码执行。 影响版本 :特定版本Nginx 防御措施 : 升级到修复版本 配置DNS解析超时时间 使用本地hosts文件解析关键域名 CVE-2017-7529 漏洞描述 :Nginx范围过滤器整数溢出漏洞,可导致信息泄露。 复现方法 : 防御措施 : 升级到Nginx 1.13.3或更高版本 禁用不必要的模块 配置WAF过滤恶意Range头 Apache安全漏洞 CVE-2021-42013 RCE 漏洞描述 :Apache HTTP Server 2.4.49-2.4.50路径遍历漏洞,可导致远程代码执行。 影响版本 :Apache 2.4.49-2.4.50 复现步骤 : 构造特殊路径请求: 服务器执行id命令并返回结果 防御措施 : 立即升级到Apache 2.4.51或更高版本 禁用CGI脚本执行 配置严格的目录权限 CVE-2021-41773 目录穿越 漏洞描述 :Apache 2.4.49路径规范化缺陷,可导致目录穿越和文件泄露。 复现方法 : 防御措施 : 升级到Apache 2.4.50或更高版本 配置 Require all denied 保护敏感目录 禁用Alias指令中的危险配置 CVE-2017-15715 换行解析漏洞 漏洞描述 :Apache 2.4.0-2.4.29换行解析漏洞,可绕过文件上传限制。 漏洞原理 : 文件名 test.php\x0A 被当作 test.php 解析 绕过上传黑名单限制 防御措施 : 升级到Apache 2.4.30或更高版本 严格验证上传文件名 使用白名单而非黑名单策略 Tomcat安全漏洞 弱口令攻击 漏洞描述 :Tomcat管理界面默认或弱口令可导致未授权访问。 常见弱口令组合 : tomcat/tomcat admin/admin root/root 攻击步骤 : 访问 http://target:8080/manager/html 尝试常见弱口令组合 登录成功后上传WAR包获取shell 防御措施 : 修改默认密码为复杂密码 限制管理界面访问IP 禁用不必要的管理功能 CVE-2017-12615 文件上传 漏洞描述 :Tomcat 7.0.0-7.0.79版本在启用HTTP PUT方法时可上传恶意JSP文件。 复现步骤 : 构造PUT请求上传JSP webshell: 访问上传的shell.jsp执行代码 防御措施 : 升级到Tomcat 7.0.80或更高版本 配置 readonly 和 VirtualDirContext 为True 禁用PUT方法 CVE-2020-1938 文件包含 漏洞描述 :Tomcat AJP协议(默认8009端口)实现缺陷可导致任意文件读取。 影响版本 : Tomcat 6 Tomcat 7 < 7.0.100 Tomcat 8 < 8.5.51 Tomcat 9 < 9.0.31 复现方法 : 防御措施 : 升级到安全版本 禁用AJP协议 配置AJP协议认证凭证 CVE-2020-9484 反序列化 漏洞描述 :Tomcat会话持久化反序列化漏洞,特定条件下可导致RCE。 利用条件 : 攻击者可控制服务器文件内容和名称 使用FileStore配置PersistenceManager sessionAttributeValueClassNameFilter配置不当 攻击者知道FileStore存储位置 防御措施 : 升级到安全版本 配置严格的sessionAttributeValueClassNameFilter 限制文件上传权限 通用防御建议 及时更新 :保持中间件版本为最新稳定版 最小化原则 :禁用不必要的功能和服务 权限控制 :遵循最小权限原则配置服务账户 日志监控 :启用详细日志并定期审计 网络隔离 :将中间件部署在内网,限制外网访问 安全配置 :参考官方安全加固指南进行配置 漏洞扫描 :定期进行安全扫描和渗透测试 备份策略 :建立完善的备份和应急响应机制 通过以上措施,可有效降低中间件安全风险,保护Web应用免受攻击。