您现在的位置是:烟消火灭网 > 休闲
APACHE TOMCAT常见漏洞补丁
烟消火灭网2026-10-17 07:48:57【休闲】8人已围观
简介Tomcat 的漏洞补丁,很多人是等出了事才去查。去年有个做电商的朋友,服务器被挖矿程序占满 CPU,排查半天发现是 Tomcat 的 Ghostcat 漏洞CVE-2020-1938)。他用的还是
Tomcat 的漏洞漏洞补丁,很多人是补丁等出了事才去查。去年有个做电商的漏洞朋友,服务器被挖矿程序占满 CPU,补丁排查半天发现是漏洞 Tomcat 的 Ghostcat 漏洞(CVE-2020-1938)。他用的补丁还是 8.5.50 版本,AJP 端口没关,漏洞攻击者直接读到了 WEB-INF 下的补丁配置文件。这事不复杂,漏洞补丁早就发了,补丁只是漏洞没人管。
Tomcat 的补丁漏洞大体分几类:信息泄露、远程代码执行、漏洞拒绝服务。补丁每类对应的漏洞补丁策略不一样,但核心逻辑就一条——版本要对,配置要改。
Ghostcat:AJP 协议的老问题
CVE-2020-1938 影响 Tomcat 6、7、8、9 多个版本。问题出在 AJP 协议上,默认监听 8009 端口,攻击者可以通过它读取应用目录下的任意文件。如果应用允许文件上传,还能进一步 getshell。
修复方式有两种。升级到 9.0.31、8.5.51、7.0.100 及以上版本,这是最省事的。如果暂时不能升级,直接注释掉 server.xml 里的 AJP Connector:
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> --> 我见过不少运维图省事,只改了端口没禁协议,这等于没补。AJP 如果确实要用,必须配 secretRequired 和 allowedRequestAttributesPattern,但大多数场景下直接关掉最干净。
反序列化漏洞:CVE-2019-0232 和它的变种
Windows 环境下 Tomcat 的 CGI Servlet 有个命令注入漏洞,CVE-2019-0232。enableCmdLineArguments 默认开启时,攻击者能通过 URL 参数执行系统命令。这个漏洞只在 Windows 上触发,但危害直接——服务器权限直接丢。
补丁在 9.0.18、8.5.40、7.0.94 里。如果还在用老版本,把 conf/web.xml 里的 enableCmdLineArguments 改成 false:
<init-param> <param-name>enableCmdLineArguments</param-name> <param-value>false</param-value> </init-param> 另外 CGI Servlet 本身就不该在生产环境开着。我经手的服务器里,十个有八个 web.xml 里 CGI 配置还留着,虽然没映射 .cgi 请求,但保不齐哪天有人手抖加上去。
文件上传与 JSP 编译漏洞
CVE-2017-12615 是个 PUT 方法任意文件写入漏洞。Tomcat 的 DefaultServlet 在 readonly 设为 false 时,允许通过 PUT 上传 JSP 文件。攻击者传个 shell.jsp 上去,直接就是 webshell。
修复很简单,conf/web.xml 里确认 readonly 是 true:
<init-param> <param-name>readonly</param-name> <param-value>true</param-value> </init-param> 但有些业务需要 WebDAV,那就得升级到 9.0.10、8.5.31、7.0.83 以上。这些版本对 PUT 做了更严格的路径校验。
Session 持久化与 DoS
CVE-2020-9484 是 Session 持久化导致的反序列化漏洞。攻击者控制 session 文件路径,触发 RCE。影响 10.0.0-M1 到 M4、9.0.0.M1 到 9.0.34、8.5.0 到 8.5.54、7.0.0 到 7.0.103。
补丁版本是 10.0.0-M5、9.0.35、8.5.55、7.0.104。如果没法升级,关掉 PersistentManager 的 session 文件存储,或者确保 session 文件目录不可被外部写入。
还有一类是慢速攻击,比如 CVE-2020-13935,WebSocket 帧处理不当导致 CPU 打满。升级到 9.0.37、8.5.57、7.0.105 就行。这类漏洞不直接 getshell,但能把服务拖垮,云环境里按量计费的话,账单会很难看。
补丁之外的事
版本升级是最直接的,但很多人卡在业务兼容性上。我的建议是:先升小版本,比如 8.5.x 升到 8.5.100,再考虑跨大版本。跨大版本前,把 web.xml、server.xml、context.xml 里的自定义配置列出来,对照官方迁移文档逐条改。
另外,Tomcat 的 manager 和 host-manager 应用默认是关的,但有些安装包会带上。如果不需要,直接删掉 webapps 下的 manager 和 host-manager 目录。这个不算漏洞,但能减少攻击面。
最后说个细节:Tomcat 的版本号在 404 页面和响应头里会暴露。改 conf/server.xml 的 Server 属性,或者用防火墙规则把 Server 头抹掉。不是必须的,但能省掉一些自动化扫描的骚扰。
补丁这事,别等出事再补。定个季度检查,看看 Tomcat 版本和官方安全公告的差距,比事后救火便宜得多。
很赞哦!(7)
上一篇: 国外新闻软件
下一篇: 免费游戏网站网址大全






