您现在的位置是:烟消火灭网 > 焦点

tomcat 漏洞

烟消火灭网2026-10-17 07:40:26【焦点】8人已围观

简介```html Tomcat 漏洞 2017年4月,Apache Tomcat 被曝出一个远程代码执行漏洞,编号 CVE-2017-12615。攻击者只要往服务器上传一个特殊构造的 JSP

```html Tomcat 漏洞

2017年4月,漏洞Apache Tomcat 被曝出一个远程代码执行漏洞,漏洞编号 CVE-2017-12615。漏洞攻击者只要往服务器上传一个特殊构造的漏洞 JSP 文件,就能直接拿到 shell。漏洞那会儿我还在上一家公司做运维,漏洞半夜被叫起来打补丁,漏洞印象太深了——因为 Tomcat 默认配置里那个 readonly 参数,漏洞很多人根本没动过,漏洞以为它天生就是漏洞安全的。

那个“只读”其实可以绕过去

Tomcat 的漏洞 conf/web.xml 里有个 readonly 属性,默认值是漏洞 true。意思是漏洞禁止用 PUT 方法上传文件。听起来挺稳妥。漏洞但 Windows 和 Linux 对文件名解析不一样。漏洞攻击者用 PUT /shell.jsp%20 这种带空格的路径,Tomcat 会把它当成 shell.jsp 来处理。空格在 Windows 上会被自动去掉,Linux 下则可能触发解析差异。结果就是:文件传上去了,readonly 形同虚设。

我当时测试过,在 Tomcat 8.5.19 上,一个 PUT 请求就能写进去。连 curl 都不用改,直接:

curl -X PUT http://target:8080/shell.jsp%20 -d "<% Runtime.getRuntime().exec(request.getParameter(\"cmd\")); %>" 

然后访问 /shell.jsp?cmd=id,服务器就归你了。这种漏洞不需要任何认证,只要 Tomcat 开了写权限(比如默认的 DefaultServlet 没改),就能打。

另一个经典:CVE-2020-1938,幽灵猫

这个更狠。2020年2月,Tomcat 的 AJP 协议默认开在 8009 端口。AJP 本来是给前端 HTTP 服务器(比如 Apache httpd)转发请求用的,设计上信任内网。但如果你把 8009 暴露到公网,攻击者就能伪造 AJP 包,读取 Tomcat 应用目录下的任意文件。WEB-INF/web.xml 里的数据库密码、源码,全都能拿走。更严重的是,如果应用里有文件上传功能,配合 AJP 还能实现 RCE。

我见过一个真实案例:某公司的测试环境 Tomcat 直接映射到公网 IP,8009 没关。结果被人扫到,第二天数据库就被脱了。他们后来复盘,发现 AJP 的 secretRequired 参数默认是 false,也就是说,任何能连上 8009 的人都能发指令。Tomcat 9 之后才改成默认 true,但老版本还在跑。

为什么 Tomcat 漏洞总在“默认配置”上翻车

Tomcat 的默认配置是给开发环境用的,不是给生产环境。比如 manager 和 host-manager 应用,默认只允许本地访问,但很多人为了图方便,改成 0.0.0.0 还不设强密码。弱口令爆破 /manager/html,传个 WAR 包上去,一样是 RCE。这不算 Tomcat 本身的漏洞,但攻击面就这么来的。

还有 examples 目录。默认安装会带一堆示例 JSP,其中有些能执行系统命令。生产环境没人会去删,结果就成了后门。我见过一个扫描器,专门扫 /examples/servlets/servlet/RequestParamExample,只要返回 200 就标记为“可能存在信息泄露”。

怎么防?别只盯着版本号

升级当然有用。CVE-2017-12615 在 7.0.81、8.5.20、9.0.0.M22 之后修复了。但升级不是万能的。很多漏洞的根源是配置。我的习惯是:装完 Tomcat 第一件事,删掉 webapps 下所有默认应用,只留自己的。然后改 server.xml,把 AJP 连接器注释掉,除非真的需要。再把 readonly 保持 true,同时禁用 PUT 和 DELETE 方法——在 web.xml 的 DefaultServlet 里加 <param-name>readonly</param-name><param-value>true</param-value> 还不够,最好用安全约束把 HTTP PUT 直接拦掉。

最后说个真事。去年帮朋友看一个站,Tomcat 7.0.47,AJP 开着,manager 弱口令 admin/admin。我问他为什么这么配,他说“网上教程就这么写的”。Tomcat 漏洞往往不是技术多高深,而是太多人复制粘贴,从不看默认值背后的风险。

```

很赞哦!(68297)

上一篇: 彩票工具大全

下一篇: 拍拍贷借1万逾期