tomcat 漏洞
一、解析相关漏洞(Parsing-related Vulnerabilities)
这类漏洞通常与请求解析、路径处理或协议实现缺陷相关:
-
AJP 文件包含漏洞(CVE-2020-1938)
Tomcat 的 AJP 协议实现存在缺陷,攻击者可构造恶意请求读取或包含 Web 应用目录下的任意文件。若结合文件上传功能,可进一步实现远程代码执行(RCE)。该漏洞属于协议解析漏洞,影响 Tomcat 6.x 至 9.x 多个版本,默认开启的 AJP 端口(8009)是主要攻击入口。 -
PUT 方法文件上传漏洞(CVE-2017-12615)
当 Tomcat 启用 HTTP PUT 方法(需手动配置readonly=false)时,攻击者可通过构造特殊后缀文件名(如evil.jsp%20或evil.jsp::$DATA)绕过安全校验,上传恶意 JSP 文件执行代码。该漏洞主要影响 Windows 环境,但部分绕过方法可跨平台利用。 -
路径解码漏洞(CVE-2017-15708)
Tomcat 在处理畸形 URL 编码(如重复%2e%2e)时可能触发空指针异常或无限循环,导致服务器崩溃。该漏洞属于路径解析缺陷,影响 Tomcat 9.x 早期版本。
二、反序列化漏洞(Deserialization Vulnerabilities)
这类漏洞利用 Java 反序列化机制的缺陷,通过构造恶意对象执行代码:
-
CVE-2016-8735 与 CVE-2025-24813
Tomcat 的会话管理或文件上传功能中,若未正确验证用户输入,攻击者可上传恶意序列化对象(如利用 Commons Collections 库),触发反序列化漏洞实现 RCE。例如,CVE-2025-24813 结合 partial PUT 请求和会话持久化机制,允许攻击者写入恶意会话文件并触发反序列化。 -
JMX 反序列化漏洞(CVE-2016-3427)
启用 JMX 远程监听功能时,攻击者可通过发送特制请求触发反序列化,执行任意命令。该漏洞需 JMX 服务暴露在公网且未配置认证。
三、信息泄露漏洞(Information Disclosure)
-
会话 Cookie 泄露(CVE-2023-28708)
Tomcat 在处理 HTTPS 重定向到 HTTP 时,可能导致会话 Cookie 通过不安全通道传输,攻击者可劫持会话或窃取敏感信息。 -
VirtualDirContext 信息泄露(CVE-2017-12616)
配置 VirtualDirContext 时,攻击者可绕过安全限制获取 JSP 源代码或服务器配置文件。该漏洞需特定配置参数启用,默认情况下不生效。
四、认证与访问控制漏洞(Authentication & Access Control)
-
管理界面弱口令
Tomcat 默认安装后,tomcat-users.xml可能存在弱密码(如用户名tomcat、密码s3cret),攻击者可登录后台上传恶意 WAR 包获取权限。 -
AJP 协议认证绕过
CVE-2020-1938 除文件包含外,还可绕过部分访问控制机制,直接访问受保护资源。
五、配置与逻辑漏洞(Configuration & Logic Flaws)
-
SessionExample 配置漏洞
Tomcat 默认示例应用SessionExample未正确限制访问,攻击者可构造请求非法操控会话,甚至获取管理员权限。建议删除默认示例目录以规避风险。 -
默认 Servlet 写入权限
DefaultServlet 的readonly参数默认关闭(需手动开启),若配置错误,攻击者可通过 PUT/DELETE 方法修改服务器文件。
六、拒绝服务漏洞(Denial of Service)
-
畸形请求导致崩溃
发送超长 URL 或非法请求头(如 CVE-2017-15708)可触发内存泄漏或 CPU 过载,使服务器无法响应正常请求。 -
文件上传 DoS
攻击者通过上传大文件或反复提交不完整 PUT 请求,耗尽服务器磁盘空间或连接资源。