在当前数字化时代,Web应用安全至关重要。作为Java生态中最主流的开源Web服务器之一,Apache Tomcat 被广泛应用于各类企业级系统中。然而,由于其配置复杂性和历史遗留问题,Tomcat多次曝出高危安全漏洞,如任意文件上传、远程代码执行、文件包含等,严重威胁服务器与数据安全。

本文将深入解析近年来影响重大的Tomcat漏洞(CVE-2017-12615、CVE-2020-1938等),并提供详细、可操作的修复步骤,帮助运维人员和开发者快速加固系统,提升服务器安全性。
Tomcat常见高危漏洞概述
1. CVE-2017-12615:远程代码执行漏洞(PUT方法任意文件写入)
漏洞等级:高危
影响版本:
Apache Tomcat 7.0.0 ~ 7.0.81(默认配置)
Tomcat 8.x、9.x(当
readonly参数被设为false时)漏洞成因: 当Tomcat运行在Windows系统且启用了HTTP PUT方法(即
readonly=false)时,攻击者可通过构造恶意请求上传JSP脚本文件,实现远程代码执行(RCE),从而完全控制服务器。利用条件:
启用PUT方法
未修改默认配置
部署在Windows环境
2. CVE-2020-1938(CNVD-2020-10487):AJP协议文件包含漏洞(幽灵猫 Ghostcat)
漏洞等级:高危
影响版本:
Tomcat 6.x
Tomcat 7.x < 7.0.100
Tomcat 8.x < 8.5.51
Tomcat 9.x < 9.0.31
漏洞成因: Tomcat的AJP(Apache JServ Protocol)连接器存在设计缺陷,攻击者可通过AJP协议(默认端口8009)读取或包含Web应用目录下的任意文件,如
web.xml、源码文件,甚至结合文件上传功能实现GetShell。危害:
敏感信息泄露(数据库密码、配置文件)
源码泄露
远程命令执行
3. 后台弱口令导致未授权访问与GetShell
漏洞描述: Tomcat默认管理后台(Manager App 和 Host Manager)若未修改默认账号密码(如
tomcat:tomcat),攻击者可直接登录并部署恶意WAR包,获取服务器控制权。常见路径:
/manager/html/host-manager/html
Tomcat漏洞修复详细步骤
✅ 修复方案一:CVE-2017-12615(PUT方法任意文件上传)
方法1:修改 web.xml 文件(推荐)
通过配置安全约束,禁止PUT方法访问所有资源。
打开Tomcat配置文件:
在
<web-app>标签内添加以下安全约束配置:
说明:此配置通过安全约束禁止所有PUT请求,即使
readonly=false也无法上传文件。
保存文件并重启Tomcat服务:
方法2:确保 readonly 参数为 true
检查 web.xml 中DefaultServlet的配置:
⚠️ 注意:
readonly=true是默认值,但某些自定义配置可能已将其改为false,务必检查。
✅ 修复方案二:CVE-2020-1938(AJP协议文件包含)
方法1:升级到安全版本(最彻底)
立即升级Tomcat至以下安全版本:
| 版本线 | 安全版本 |
|---|---|
| Tomcat 9.x | ≥ 9.0.31 |
| Tomcat 8.x | ≥ 8.5.51 |
| Tomcat 7.x | ≥ 7.0.100 |
| Tomcat 6.x | 已停止维护,建议迁移 |
方法2:关闭AJP连接器(若无需AJP服务)
编辑
conf/server.xml文件。找到AJP Connector配置并注释或删除:
保存并重启Tomcat。
方法3:启用AJP认证(高级防护)
若必须使用AJP协议(如与Apache httpd集成),请配置密钥认证:
同时,在前端Web服务器(如Apache)中配置相同的secret,确保只有授权服务可连接。
✅ 修复方案三:后台弱口令与未授权访问
1. 修改或删除默认管理用户
编辑 conf/tomcat-users.xml 文件:
✅ 密码策略建议:
长度 ≥ 12位
包含大小写字母、数字、特殊字符
避免使用
tomcat、admin、123456等弱口令
2. 删除或重命名管理应用(可选)
若无需管理后台,可直接删除:
或重命名为随机路径(如/mng_abc123/),避免被扫描发现。
3. 配置IP访问限制
在 conf/Catalina/localhost/manager.xml 中添加:
仅允许可信IP访问管理后台。
其他安全加固建议
隐藏版本信息: 修改
conf/server.xml,在<Host>中添加:启用HTTPS: 配置SSL/TLS证书,使用443端口提供安全访问。
定期更新与扫描:
订阅Apache安全公告
使用漏洞扫描工具(如Nessus、OpenVAS)定期检测
最小化部署:
删除示例应用(
examples、docs)关闭不必要的Servlet和Connector
Tomcat作为核心中间件,其安全性直接关系到整个应用系统的安全。面对CVE-2017-12615、CVE-2020-1938等高危漏洞,及时修复和配置加固是关键。
✅ 核心修复步骤总结:
禁用PUT方法或确保
readonly=true升级至安全版本或关闭AJP端口
修改默认账号密码,删除或保护管理后台
定期审计配置,最小化服务暴露
通过以上措施,可有效抵御绝大多数已知攻击,保障服务器稳定运行。
📢 温馨提示:安全无小事,建议所有Tomcat管理员立即检查当前版本与配置,落实本文修复方案,防患于未然!





















