Tomcat常见漏洞汇总
字数 2467 2025-11-11 12:06:03

Apache Tomcat 常见漏洞分析与防护指南

1. 产品概述

Apache Tomcat 是由 Apache 软件基金会开发的开源轻量级 Java Web 应用服务器,作为 Servlet、JSP 和 EL 等规范的官方参考实现,广泛应用于 Java Web 应用部署环境。

官网地址:https://tomcat.apache.org/

2. 资产识别与测绘

2.1 网络测绘语法

FOFA

icon_hash="-297069493"
title="Apache Tomcat"
app="APACHE-Tomcat"
body="Tomcat Connectors"

Hunter

app.name=="Apache Tomcat"
web.title="Apache Tomcat"
web.icon=="4644f2d45601037b8423d45e13194c93"
web.body="Tomcat Connectors"

3. 目录结构分析

webapp/                          # 工程发布文件夹
├── META-INF/                   # 工程元信息目录
│   └── MANIFEST.MF             # 包含应用版本、依赖等元数据
├── WEB-INF/                    # Web应用安全目录(客户端不可访问)
│   ├── web.xml                 # Web应用部署配置文件
│   ├── classes/                # 应用程序类文件目录
│   └── lib/                    # 第三方库文件目录
└── <userdir>/                  # 开发者创建的静态资源目录

4. 常见漏洞详解

4.1 Tomcat示例目录泄露

风险描述:默认源码包包含 servlets-examples 和 tomcat-docs 目录,其中样例存在安全风险。

影响:攻击者可操纵 session 绕过验证机制直接登录后台。

检测方法:访问 /examples/servlets/servlet/SessionExample 等样例路径。

4.2 Tomcat弱口令漏洞

漏洞原理:Manager 页面采用 Basic 认证,易受暴力破解攻击。

常见弱口令组合

  • tomcat/tomcat
  • admin/admin
  • admin/空口令
  • root/root

爆破方法

  1. 使用 Burp Suite 抓取登录请求
  2. 对 Authorization 头进行 Base64 解码(格式:username:password)
  3. 采用迭代攻击模式进行爆破

4.3 Tomcat后台GetShell漏洞

漏洞原理:通过 Manager 后台的 WAR 包热部署功能实现代码执行。

利用步骤

  1. 生成 JSP WebShell(如使用哥斯拉)
  2. 将 JSP 文件打包为 WAR 格式
  3. 通过 Manager App 上传部署
  4. 访问 WebShell 路径获取控制权

检测工具

  • fscan
  • Tomcatscan

修复方案

  1. 设置强密码:修改 conf/tomcat-users.xml
  2. 删除 manager 目录
  3. 限制管理界面访问IP

4.4 AJP任意文件读取/包含漏洞(CVE-2020-1938)

影响版本

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

漏洞原理:AJP协议缺陷导致可读取Web应用目录任意文件。

复现步骤

  1. 使用检测脚本:python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py
  2. 读取敏感文件:/WEB-INF/web.xml
  3. 配合文件上传实现RCE

修复方案

  1. 升级到安全版本
  2. 注释 server.xml 中的 AJP Connector
  3. 配置 AJP 认证参数

4.5 任意文件写入漏洞(CVE-2017-12615)

影响版本:Tomcat 7.0.0-7.0.81

漏洞条件conf/web.xmlreadonly 参数设置为 false。

绕过方法

  1. 使用斜杠:shell.jsp/
  2. 空格编码:shell.jsp%20
  3. Windows NTFS流:shell.jsp::$DATA

修复方案:设置 readonly 为 true。

4.6 拒绝服务漏洞(CVE-2020-13935)

影响版本

  • 9.0.0.M1~9.0.36
  • 10.0.0-M1~10.0.0-M6
  • 8.5.0~8.5.56
  • 7.0.27~7.0.104

漏洞原理:WebSocket 协议处理缺陷导致无限循环消耗CPU资源。

检测方法:访问 /examples/websocket/echo.xhtml

4.7 路径遍历漏洞(CVE-2025-55752)

影响版本

  • Tomcat 11.x:11.0.0-M1 ≤ 版本 < 11.0.11
  • Tomcat 10.x:10.1.0-M1 ≤ 版本 < 10.0.45
  • Tomcat 9.x:9.0.0-M1 ≤ 版本 < 9.0.109

利用条件

  1. 启用 RewriteValve 组件
  2. 重写规则存在逻辑缺陷
  3. 启用文件修改类HTTP方法

检测命令

curl -i "http://target:8080/download?path=%2FWEB-INF%2Fweb.xml"

4.8 远程代码执行漏洞(CVE-2019-0232)

影响版本

  • Tomcat 9.0.0.M1 to 9.0.17
  • Tomcat 8.5.0 to 8.5.39
  • Tomcat 7.0.0 to 7.0.93

必要条件:Windows平台 + 启用CGI Servlet。

4.9 反序列化漏洞(CVE-2016-8735)

影响版本:Tomcat 6.0.0-6.0.47 至 9.0.0.M1-9.0.0.M11

必要条件:启用 JmxRemoteLifecycleListener 服务。

5. 安全加固建议

5.1 配置安全

  1. 修改默认端口(8080,8009)
  2. 删除示例文档和manager应用
  3. 设置强密码策略
  4. 限制管理界面访问权限

5.2 服务加固

  1. 关闭不必要的AJP服务
  2. 设置 readonly=true
  3. 定期更新到最新安全版本
  4. 最小化服务组件启用

5.3 监控防护

  1. 部署WAF防护设备
  2. 启用安全审计日志
  3. 建立漏洞扫描机制
  4. 实施网络访问控制

6. 检测工具推荐

6.1 综合扫描

  • afrogafrog.exe -s tomcat -pl
  • fscan:端口和服务识别
  • Tomcatscan:专用漏洞检测

6.2 专项检测

  • AJP漏洞检测脚本
  • WebSocket测试工具
  • 路径遍历检测工具

7. 总结

Tomcat 作为广泛使用的Java应用服务器,其安全性直接关系到业务系统的稳定运行。通过系统化的漏洞认知、及时的补丁管理和严格的安全配置,可有效降低安全风险。安全运维人员应建立常态化的安全检测机制,确保Tomcat服务持续安全稳定运行。


:本文仅用于安全研究和技术学习,在实际环境中进行安全测试时,请确保获得相关授权并遵守法律法规。

Apache Tomcat 常见漏洞分析与防护指南 1. 产品概述 Apache Tomcat 是由 Apache 软件基金会开发的开源轻量级 Java Web 应用服务器,作为 Servlet、JSP 和 EL 等规范的官方参考实现,广泛应用于 Java Web 应用部署环境。 官网地址 :https://tomcat.apache.org/ 2. 资产识别与测绘 2.1 网络测绘语法 FOFA : Hunter : 3. 目录结构分析 4. 常见漏洞详解 4.1 Tomcat示例目录泄露 风险描述 :默认源码包包含 servlets-examples 和 tomcat-docs 目录,其中样例存在安全风险。 影响 :攻击者可操纵 session 绕过验证机制直接登录后台。 检测方法 :访问 /examples/servlets/servlet/SessionExample 等样例路径。 4.2 Tomcat弱口令漏洞 漏洞原理 :Manager 页面采用 Basic 认证,易受暴力破解攻击。 常见弱口令组合 : tomcat/tomcat admin/admin admin/空口令 root/root 爆破方法 : 使用 Burp Suite 抓取登录请求 对 Authorization 头进行 Base64 解码(格式:username:password) 采用迭代攻击模式进行爆破 4.3 Tomcat后台GetShell漏洞 漏洞原理 :通过 Manager 后台的 WAR 包热部署功能实现代码执行。 利用步骤 : 生成 JSP WebShell(如使用哥斯拉) 将 JSP 文件打包为 WAR 格式 通过 Manager App 上传部署 访问 WebShell 路径获取控制权 检测工具 : fscan Tomcatscan 修复方案 : 设置强密码:修改 conf/tomcat-users.xml 删除 manager 目录 限制管理界面访问IP 4.4 AJP任意文件读取/包含漏洞(CVE-2020-1938) 影响版本 : Apache Tomcat 6 Tomcat 7 < 7.0.100 Tomcat 8 < 8.5.51 Tomcat 9 < 9.0.31 漏洞原理 :AJP协议缺陷导致可读取Web应用目录任意文件。 复现步骤 : 使用检测脚本: python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py 读取敏感文件: /WEB-INF/web.xml 配合文件上传实现RCE 修复方案 : 升级到安全版本 注释 server.xml 中的 AJP Connector 配置 AJP 认证参数 4.5 任意文件写入漏洞(CVE-2017-12615) 影响版本 :Tomcat 7.0.0-7.0.81 漏洞条件 : conf/web.xml 中 readonly 参数设置为 false。 绕过方法 : 使用斜杠: shell.jsp/ 空格编码: shell.jsp%20 Windows NTFS流: shell.jsp::$DATA 修复方案 :设置 readonly 为 true。 4.6 拒绝服务漏洞(CVE-2020-13935) 影响版本 : 9.0.0.M1~9.0.36 10.0.0-M1~10.0.0-M6 8.5.0~8.5.56 7.0.27~7.0.104 漏洞原理 :WebSocket 协议处理缺陷导致无限循环消耗CPU资源。 检测方法 :访问 /examples/websocket/echo.xhtml 4.7 路径遍历漏洞(CVE-2025-55752) 影响版本 : Tomcat 11.x:11.0.0-M1 ≤ 版本 < 11.0.11 Tomcat 10.x:10.1.0-M1 ≤ 版本 < 10.0.45 Tomcat 9.x:9.0.0-M1 ≤ 版本 < 9.0.109 利用条件 : 启用 RewriteValve 组件 重写规则存在逻辑缺陷 启用文件修改类HTTP方法 检测命令 : 4.8 远程代码执行漏洞(CVE-2019-0232) 影响版本 : Tomcat 9.0.0.M1 to 9.0.17 Tomcat 8.5.0 to 8.5.39 Tomcat 7.0.0 to 7.0.93 必要条件 :Windows平台 + 启用CGI Servlet。 4.9 反序列化漏洞(CVE-2016-8735) 影响版本 :Tomcat 6.0.0-6.0.47 至 9.0.0.M1-9.0.0.M11 必要条件 :启用 JmxRemoteLifecycleListener 服务。 5. 安全加固建议 5.1 配置安全 修改默认端口(8080,8009) 删除示例文档和manager应用 设置强密码策略 限制管理界面访问权限 5.2 服务加固 关闭不必要的AJP服务 设置 readonly=true 定期更新到最新安全版本 最小化服务组件启用 5.3 监控防护 部署WAF防护设备 启用安全审计日志 建立漏洞扫描机制 实施网络访问控制 6. 检测工具推荐 6.1 综合扫描 afrog : afrog.exe -s tomcat -pl fscan :端口和服务识别 Tomcatscan :专用漏洞检测 6.2 专项检测 AJP漏洞检测脚本 WebSocket测试工具 路径遍历检测工具 7. 总结 Tomcat 作为广泛使用的Java应用服务器,其安全性直接关系到业务系统的稳定运行。通过系统化的漏洞认知、及时的补丁管理和严格的安全配置,可有效降低安全风险。安全运维人员应建立常态化的安全检测机制,确保Tomcat服务持续安全稳定运行。 注 :本文仅用于安全研究和技术学习,在实际环境中进行安全测试时,请确保获得相关授权并遵守法律法规。