Web中间件常见漏洞总结
字数 3082 2025-08-18 11:37:57

Web中间件常见漏洞分析与防护指南

一、常见Web中间件及其漏洞概述

(一) IIS漏洞

  1. PUT漏洞
  2. 短文件名猜解
  3. 远程代码执行
  4. 解析漏洞

(二) Apache漏洞

  1. 解析漏洞
  2. 目录遍历

(三) Nginx漏洞

  1. 文件解析
  2. 目录遍历
  3. CRLF注入
  4. 目录穿越

(四) Tomcat漏洞

  1. 远程代码执行
  2. war后门文件部署

(五) jBoss漏洞

  1. 反序列化漏洞
  2. war后门文件部署

(六) WebLogic漏洞

  1. 反序列化漏洞
  2. SSRF
  3. 任意文件上传
  4. war后门文件部署

(七) 其它中间件相关漏洞

  1. FastCGI未授权访问、任意命令执行
  2. PHPCGI远程代码执行

二、IIS漏洞分析与防护

(一) IIS简介

Internet Information Services(互联网信息服务),微软提供的基于Windows的互联网基本服务,包含Web服务器、FTP服务器等组件。

(二) PUT漏洞

漏洞成因:IIS Server在Web服务扩展中开启了WebDAV并配置了写入权限。

复现步骤

  1. 开启WebDAV和写权限
  2. 使用burp测试,将GET请求改为OPTIONS
  3. 上传一句话木马并用菜刀连接

修复方案

  • 关闭WebDAV和写权限

(三) 短文件名猜解

漏洞成因:IIS的短文件名机制可被暴力猜解。

复现步骤

  1. 在网站根目录添加长文件名文件
  2. 通过访问构造的短文件名测试存在性(404存在/400不存在)

修复方案

  1. 升级.net framework
  2. 修改注册表禁用短文件名功能:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
    将NtfsDisable8dot3NameCreation设为1
    
  3. CMD关闭NTFS 8.3文件格式支持
  4. 移动并重命名web文件夹

局限性

  • 只能确定前6个字符
  • 文件名太短无法猜解
  • 文件名前6位带空格会导致不匹配

(四) 远程代码执行

漏洞成因:IIS6.0处理PROPFIND指令时对url长度检查不足导致栈溢出。

复现步骤

  1. 在Windows Server 2003 R2 32位上安装IIS6.0
  2. 执行exp触发漏洞(如弹出计算器)

修复方案

  • 关闭WebDAV服务
  • 使用相关防护设备

(五) 解析漏洞

漏洞成因:IIS 6.0处理含特殊符号的文件路径时出现逻辑错误。

利用方式

  1. /test.asp/test.jpg
  2. test.asp;.jpg

IIS7.5解析漏洞
test.jpg/.php会被当作php执行

修复方案

  1. 过滤新建目录文件名中的'.'
  2. 禁用新建目录功能
  3. 限制上传脚本执行权限
  4. 通过ISApi组件过滤.asp/xm.jpg

三、Apache漏洞分析与防护

(一) Apache简介

世界使用排名第一的Web服务器软件,跨平台、安全性高。

(二) 解析漏洞

漏洞成因:Apache默认一个文件可以有多个以点分隔的后缀,从左向右识别。

复现步骤
上传如shell.php.xxx文件,当xxx无法识别时会向左识别为php

修复方案
删除AddHandler application/x-httpd-php .php的配置

(三) 目录遍历

漏洞成因:配置错误导致目录遍历。

修复方案
修改httpd.conf:

Options+Indexes+FollowSymLinks+ExecCGI → Options-Indexes+FollowSymLinks+ExecCGI

四、Nginx漏洞分析与防护

(一) Nginx简介

轻量级Web服务器/反向代理服务器,高并发能力强。

(二) 文件解析

漏洞成因:任意文件名后添加/任意文件名.php可被解析。

复现步骤

  1. 上传含php代码的.gif文件
  2. 访问i.gif.2.php可执行php代码

修复方案

  1. php.ini中设置cgi.fix_pathinfo=0
  2. 限制security.limit_ectensions为.php

(三) 目录遍历

漏洞成因:配置错误导致目录遍历与源码泄露。

复现步骤
修改/etc/nginx/sites-avaliable/default添加autoindex on

修复方案
autoindex on改为autoindex off

(四) CRLF注入

漏洞成因:通过控制HTTP消息头中的字符注入恶意换行。

修复方案
修改配置文件使用不解码的url跳转。

(五) 目录穿越

漏洞成因:反向代理配置中路径未用/闭合导致目录穿越。

修复方案
确保配置文件中的路径使用/闭合。

五、Tomcat漏洞分析与防护

(一) Tomcat简介

轻量级Web应用服务器,JSP开发调试首选。

(二) 远程代码执行

漏洞成因:启用HTTP PUT方法可上传包含任意代码的JSP文件。

影响版本:Apache Tomcat 7.0.0 - 7.0.81

复现步骤

  1. 配置开启PUT方法
  2. 上传JSP木马文件
  3. 访问执行系统命令

修复方案

  1. 禁用PUT方法
  2. 升级至最新版

(三) war后门文件部署

漏洞成因:后台弱口令导致可上传恶意war包。

复现步骤

  1. 爆破后台密码
  2. 上传含后门的war包
  3. 部署并启动服务

修复方案

  1. 低权限运行Tomcat
  2. 增加身份验证机制
  3. 设置目录最小权限
  4. 避免弱口令

六、jBoss漏洞分析与防护

(一) jBoss简介

基于J2EE的开源应用服务器。

(二) 反序列化漏洞

漏洞成因:Java反序列化过程中过滤不严格。

复现步骤

  1. 访问/invoker/readonly(返回500说明存在漏洞)
  2. 构造恶意序列化数据触发RCE

修复方案

  1. 升级至JBOSS AS7
  2. 删除http-invoker.sar组件
  3. 对httpinvoker组件进行访问控制

(三) war后门文件部署

漏洞成因:后台弱口令导致可上传恶意war包。

修复方案:加强后台认证,避免弱口令。

七、WebLogic漏洞分析与防护

(一) WebLogic简介

Oracle公司的Java应用服务器。

(二) 反序列化漏洞

复现步骤

  1. 构造恶意序列化数据
  2. 发送至漏洞端点获取shell

修复方案

  1. 安装Oracle补丁
  2. 控制wls-wsat资源访问

(三) SSRF漏洞

漏洞成因:可发送任意HTTP请求攻击内网组件。

复现步骤

  1. 访问/uddiexplorer/SearchPublicRegistries.jsp
  2. 修改请求攻击内网服务

修复方案

  1. 删除SearchPublicRegistries.jsp
  2. 限制uddiexplorer内网访问
  3. 重命名SearchPublicRegistries.jsp为.jspx

(四) 任意文件上传

漏洞成因:通过config.do页面更改工作目录上传恶意文件。

复现步骤

  1. 访问/ws_utc/config.do
  2. 更改Work Home Dir
  3. 上传JSP木马
  4. 访问带时间戳的路径执行

修复方案

  1. 安装官方补丁
  2. 启用"生产模式"

(五) war后门文件部署

漏洞成因:后台弱口令导致可上传恶意war包。

修复方案:防火墙设置端口过滤,避免弱口令。

八、其他中间件漏洞

(一) FastCGI未授权访问、任意命令执行

漏洞成因:开放FastCGI端口(9000)可构造协议包执行命令。

复现步骤

  1. 构造FastCGI协议包
  2. 执行系统命令

修复方案:更改默认端口

(二) PHPCGI远程代码执行

漏洞成因:URL参数传递给php解释器时未过滤命令行开关。

影响版本:php-5.3.12以前版本

复现步骤

  1. 访问php页面
  2. 添加命令行参数执行代码

修复方案

  1. 升级php版本
  2. Apache开启URL过滤
  3. 安装php补丁
Web中间件常见漏洞分析与防护指南 一、常见Web中间件及其漏洞概述 (一) IIS漏洞 PUT漏洞 短文件名猜解 远程代码执行 解析漏洞 (二) Apache漏洞 解析漏洞 目录遍历 (三) Nginx漏洞 文件解析 目录遍历 CRLF注入 目录穿越 (四) Tomcat漏洞 远程代码执行 war后门文件部署 (五) jBoss漏洞 反序列化漏洞 war后门文件部署 (六) WebLogic漏洞 反序列化漏洞 SSRF 任意文件上传 war后门文件部署 (七) 其它中间件相关漏洞 FastCGI未授权访问、任意命令执行 PHPCGI远程代码执行 二、IIS漏洞分析与防护 (一) IIS简介 Internet Information Services(互联网信息服务),微软提供的基于Windows的互联网基本服务,包含Web服务器、FTP服务器等组件。 (二) PUT漏洞 漏洞成因 :IIS Server在Web服务扩展中开启了WebDAV并配置了写入权限。 复现步骤 : 开启WebDAV和写权限 使用burp测试,将GET请求改为OPTIONS 上传一句话木马并用菜刀连接 修复方案 : 关闭WebDAV和写权限 (三) 短文件名猜解 漏洞成因 :IIS的短文件名机制可被暴力猜解。 复现步骤 : 在网站根目录添加长文件名文件 通过访问构造的短文件名测试存在性(404存在/400不存在) 修复方案 : 升级.net framework 修改注册表禁用短文件名功能: CMD关闭NTFS 8.3文件格式支持 移动并重命名web文件夹 局限性 : 只能确定前6个字符 文件名太短无法猜解 文件名前6位带空格会导致不匹配 (四) 远程代码执行 漏洞成因 :IIS6.0处理PROPFIND指令时对url长度检查不足导致栈溢出。 复现步骤 : 在Windows Server 2003 R2 32位上安装IIS6.0 执行exp触发漏洞(如弹出计算器) 修复方案 : 关闭WebDAV服务 使用相关防护设备 (五) 解析漏洞 漏洞成因 :IIS 6.0处理含特殊符号的文件路径时出现逻辑错误。 利用方式 : /test.asp/test.jpg test.asp;.jpg IIS7.5解析漏洞 : test.jpg/.php 会被当作php执行 修复方案 : 过滤新建目录文件名中的'.' 禁用新建目录功能 限制上传脚本执行权限 通过ISApi组件过滤.asp/xm.jpg 三、Apache漏洞分析与防护 (一) Apache简介 世界使用排名第一的Web服务器软件,跨平台、安全性高。 (二) 解析漏洞 漏洞成因 :Apache默认一个文件可以有多个以点分隔的后缀,从左向右识别。 复现步骤 : 上传如 shell.php.xxx 文件,当xxx无法识别时会向左识别为php 修复方案 : 删除 AddHandler application/x-httpd-php .php 的配置 (三) 目录遍历 漏洞成因 :配置错误导致目录遍历。 修复方案 : 修改httpd.conf: 四、Nginx漏洞分析与防护 (一) Nginx简介 轻量级Web服务器/反向代理服务器,高并发能力强。 (二) 文件解析 漏洞成因 :任意文件名后添加 /任意文件名.php 可被解析。 复现步骤 : 上传含php代码的.gif文件 访问 i.gif.2.php 可执行php代码 修复方案 : php.ini中设置 cgi.fix_pathinfo=0 限制 security.limit_ectensions 为.php (三) 目录遍历 漏洞成因 :配置错误导致目录遍历与源码泄露。 复现步骤 : 修改 /etc/nginx/sites-avaliable/default 添加 autoindex on 修复方案 : 将 autoindex on 改为 autoindex off (四) CRLF注入 漏洞成因 :通过控制HTTP消息头中的字符注入恶意换行。 修复方案 : 修改配置文件使用不解码的url跳转。 (五) 目录穿越 漏洞成因 :反向代理配置中路径未用/闭合导致目录穿越。 修复方案 : 确保配置文件中的路径使用/闭合。 五、Tomcat漏洞分析与防护 (一) Tomcat简介 轻量级Web应用服务器,JSP开发调试首选。 (二) 远程代码执行 漏洞成因 :启用HTTP PUT方法可上传包含任意代码的JSP文件。 影响版本 :Apache Tomcat 7.0.0 - 7.0.81 复现步骤 : 配置开启PUT方法 上传JSP木马文件 访问执行系统命令 修复方案 : 禁用PUT方法 升级至最新版 (三) war后门文件部署 漏洞成因 :后台弱口令导致可上传恶意war包。 复现步骤 : 爆破后台密码 上传含后门的war包 部署并启动服务 修复方案 : 低权限运行Tomcat 增加身份验证机制 设置目录最小权限 避免弱口令 六、jBoss漏洞分析与防护 (一) jBoss简介 基于J2EE的开源应用服务器。 (二) 反序列化漏洞 漏洞成因 :Java反序列化过程中过滤不严格。 复现步骤 : 访问 /invoker/readonly (返回500说明存在漏洞) 构造恶意序列化数据触发RCE 修复方案 : 升级至JBOSS AS7 删除http-invoker.sar组件 对httpinvoker组件进行访问控制 (三) war后门文件部署 漏洞成因 :后台弱口令导致可上传恶意war包。 修复方案 :加强后台认证,避免弱口令。 七、WebLogic漏洞分析与防护 (一) WebLogic简介 Oracle公司的Java应用服务器。 (二) 反序列化漏洞 复现步骤 : 构造恶意序列化数据 发送至漏洞端点获取shell 修复方案 : 安装Oracle补丁 控制wls-wsat资源访问 (三) SSRF漏洞 漏洞成因 :可发送任意HTTP请求攻击内网组件。 复现步骤 : 访问 /uddiexplorer/SearchPublicRegistries.jsp 修改请求攻击内网服务 修复方案 : 删除SearchPublicRegistries.jsp 限制uddiexplorer内网访问 重命名SearchPublicRegistries.jsp为.jspx (四) 任意文件上传 漏洞成因 :通过config.do页面更改工作目录上传恶意文件。 复现步骤 : 访问 /ws_utc/config.do 更改Work Home Dir 上传JSP木马 访问带时间戳的路径执行 修复方案 : 安装官方补丁 启用"生产模式" (五) war后门文件部署 漏洞成因 :后台弱口令导致可上传恶意war包。 修复方案 :防火墙设置端口过滤,避免弱口令。 八、其他中间件漏洞 (一) FastCGI未授权访问、任意命令执行 漏洞成因 :开放FastCGI端口(9000)可构造协议包执行命令。 复现步骤 : 构造FastCGI协议包 执行系统命令 修复方案 :更改默认端口 (二) PHPCGI远程代码执行 漏洞成因 :URL参数传递给php解释器时未过滤命令行开关。 影响版本 :php-5.3.12以前版本 复现步骤 : 访问php页面 添加命令行参数执行代码 修复方案 : 升级php版本 Apache开启URL过滤 安装php补丁