tomcat沉睡十年的漏洞被公开,听说你还才刚知道?
Posted 自动化软件测试
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat沉睡十年的漏洞被公开,听说你还才刚知道?相关的知识,希望对你有一定的参考价值。
码同学200张知识鼠标垫免费赠送啦
Java 是目前 Web 开发中最主流的编程语言,而 Tomcat 是当前最流行的 Java 中间件服务器之一,从初版发布到现在已经
有二十多年历史
,在世界范围内广泛使用。
最近一段时间,大家都在远程办公,却都急急忙忙的升级线上的 Tomcat 版本,原因就是 Tomcat 被曝出了严重的漏洞,几乎涉及到所有的版本。
具体来说就是
Apache Tomcat 服务器存在文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件
,如:webapp 配置文件或源代码等。
由于 Tomcat 默认开启的 AJP 服务(8009 端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响 Tomcat 服务器上的 Web 目录文件。
发现这个漏洞的是国内一线的安全公司长亭科技,他们
将这个漏洞命名为Ghostcat(幽灵猫)
。
• 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的源码,那么可以看看这篇文章:
https://www.freebuf.com/vuls/228108.html
测试该漏洞的概念性验证脚本在github上有人开源:
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
若文件内容中存在可执行代码,那读取文件时便可造成代码执行:
1、禁用Tomcat 的 AJP 协议端口,在 conf/server.xml 配置文件中注释掉 <Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />。
2、在 ajp 配置中的 secretRequired 跟 secret 属性来限制认证。
最近版本的tomcat都是默认开启ajp协议,所以这个漏洞的影响力应该是非常广的。看完这篇文章,相信很多人可能连测试时遇到的问题的都摸不着头脑,
希望大家理解文件包含漏洞以及任意代码执行漏洞的原理再来进行测试。
你们公司有没有用 Tomcat?用的版本是多少?有没有中招?欢迎留言区评论交流!
PS:本文截图都是网络图片或本地测试环境,工具是网络公开。请不要利用文章内提供的工具和思路进行犯罪行为,产生的任何后果与本机构无关。