Java安全-Tomcat AJP 文件包含漏洞(CVE-2020-1938)幽灵猫漏洞复现
Posted Ocean:)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java安全-Tomcat AJP 文件包含漏洞(CVE-2020-1938)幽灵猫漏洞复现相关的知识,希望对你有一定的参考价值。
Tomcat AJP 文件包含漏洞(CVE-2020-1938)
CVE-2020-1938 又名GhostCat
ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat 上所有 webapp 目录下的任意文件
该漏洞是一个单独的文件包含漏洞,依赖于 Tomcat 的 AJP(定向包协议)。AJP 自身存在一定缺陷,由于Tomcat
在处理AJP
请求时,未对请求做任何验证,通过设置AJP
连接器封装的request
对象的属性, 导致产生任意文件读取漏洞和代码执行漏洞
AJP协议使用率约为7.8%,鉴于Tomcat作为中间件被大范围部署在服务器上,该漏洞危害较大
漏洞环境可以使用vulhub
影响范围:
- Apache Tomcat 9.x < 9.0.31
- Apache Tomcat 8.x < 8.5.51
- Apache Tomcat 7.x < 7.0.100
- Apache Tomcat 6.x
APJ13 协议
Tomcat主要有两大功能
- 充当Web服务器,可以对一切静态资源的请求作出回应
- 充当Servlet容器。常见的Web服务器有 Apache、nginx、IIS等。常见的Servlet容器有Tomcat、Weblogic、JBOSS等
Servlet 容器可以理解为 Web 服务器的升级版。以 Tomcat 为例,Tomcat 本身可以不作为 Servlet 容器使用,仅仅充当 Web 服务器的角色,但是其处理静态资源请求的效率和速度远不及 Apache,所以很多情况下生产环境会将 Apache 作为 Web 服务器来接收用户的请求。静态资源由 Apache 直接处理,而 Servlet 请求则交由 Tomcat 来进行处理。这种方式使两个中间件各司其职,大大加快了响应速度
用户的请求是以 HTTP 协议的形式传递给 Web 服务器。我们在浏览器中对某个域名或者ip进行访问时,头部都会有 http 或者 https 的表示,而 AJP 浏览器是不支持的,我们无法通过浏览器发送AJP的报文。AJP 这个协议并不是提供给用户使用的
Tomcat$ CATALINA_BASE/conf/web.xml 默认配置了两个 Connector ,分别监听两个不同的端口,一个是 HTTP Connector 默认监听 8080 端口,另一个是AJPConnector 默认监听 8009 端口
HTTP Connector 主要负责接收来自用户的请求,包括静态请求和动态请求。有了 HTTP Connector,Tomcat 才能成为一个 Web 服务器,还可以额外处理 Servlet 和 JSP
而 AJP 的使用对象通常是另一个 Web 服务器,例如 Apache
AJP是一个二进制的TCP传输协议。浏览器无法使用AJP,而是首先由Apache与Tomcat进行AJP的通信,然后由Apache通过proxy_ajp模块进行反向代理,将其转换成HTTP服务器再暴露给用户,允许用户进行访问
这样做的原因是,相对于HTTP纯文本协议来说,效率和性能更高,同时也做了很多优化
在某种程度上,AJP可以理解为HTTP的二进制版,因加快传输效率被广泛应用。实际情况是类似Apache这样有proxy_ajp模块可以反向代理AJP协议的服务器很少,所以AJP协议在生产环境中也很少被用到
漏洞复现
使用vulhub:https://github.com/vulhub/vulhub/blob/master/tomcat/CVE-2020-1938/README.zh-cn.md
exp:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
-f 参数指定读取的文件
还可以命令执行:https://github.com/00theway/Ghostcat-CNVD-2020-10487
漏洞原理
这个原理是真的顶。。。。。
https://weread.qq.com/web/reader/c8732a70726fa058c87154bk76d325c028076dc611d6d8c
以上是关于Java安全-Tomcat AJP 文件包含漏洞(CVE-2020-1938)幽灵猫漏洞复现的主要内容,如果未能解决你的问题,请参考以下文章
2-java安全——tomcat AJP协议文件包含分析[CVE-2020-1938]
2-java安全——tomcat AJP协议文件包含分析[CVE-2020-1938]