vlambda博客
学习文章列表

tomcat沉睡十年的漏洞被公开,听说你还才刚知道?

码同学200张知识鼠标垫免费赠送啦

tomcat沉睡十年的漏洞被公开,听说你还才刚知道?

Java 是目前 Web 开发中最主流的编程语言,而 Tomcat 是当前最流行的 Java 中间件服务器之一,从初版发布到现在已经 有二十多年历史 ,在世界范围内广泛使用。

最近一段时间,大家都在远程办公,却都急急忙忙的升级线上的 Tomcat 版本,原因就是 Tomcat 被曝出了严重的漏洞,几乎涉及到所有的版本。
具体来说就是 Apache Tomcat 服务器存在文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件 ,如:webapp 配置文件或源代码等。
由于 Tomcat 默认开启的 AJP 服务(8009 端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响 Tomcat 服务器上的 Web 目录文件。
发现这个漏洞的是国内一线的安全公司长亭科技,他们 将这个漏洞命名为Ghostcat(幽灵猫)

tomcat沉睡十年的漏洞被公开,听说你还才刚知道?

tomcat沉睡十年的漏洞被公开,听说你还才刚知道?
漏洞影响的版本

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

由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。

tomcat沉睡十年的漏洞被公开,听说你还才刚知道?
如果对tomcat这个漏洞的原理感兴趣,并且不排斥读一读tomcat的源码,那么可以看看这篇文章:
https://www.freebuf.com/vuls/228108.html

测试该漏洞的概念性验证脚本在github上有人开源:
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

使用方式和成功的截图如下图:

tomcat沉睡十年的漏洞被公开,听说你还才刚知道?

若文件内容中存在可执行代码,那读取文件时便可造成代码执行:

tomcat沉睡十年的漏洞被公开,听说你还才刚知道?


tomcat沉睡十年的漏洞被公开,听说你还才刚知道?
漏洞修复方案

tomcat沉睡十年的漏洞被公开,听说你还才刚知道?
1、禁用Tomcat 的 AJP 协议端口,在 conf/server.xml 配置文件中注释掉 <Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />。

2、在 ajp 配置中的 secretRequired 跟 secret 属性来限制认证。

3、对 Tomcat 进行版本升级。

最近版本的tomcat都是默认开启ajp协议,所以这个漏洞的影响力应该是非常广的。看完这篇文章,相信很多人可能连测试时遇到的问题的都摸不着头脑, 希望大家理解文件包含漏洞以及任意代码执行漏洞的原理再来进行测试。

你们公司有没有用 Tomcat?用的版本是多少?有没有中招?欢迎留言区评论交流!

PS:本文截图都是网络图片或本地测试环境,工具是网络公开。请不要利用文章内提供的工具和思路进行犯罪行为,产生的任何后果与本机构无关。


⚡️码同学200张知识鼠标垫免费赠送啦⚡️

——Python算法鼠标垫首次公开

👇👇

 扫码参与领取
tomcat沉睡十年的漏洞被公开,听说你还才刚知道?

我就知道你“在看”