Tomcat-幽灵猫GhostCat漏洞复现

Tomcat-幽灵猫GhostCat漏洞复现

GhostCat漏洞大概是在2月份的时候暴露出来的,是由长亭发现的,详细情况可以进入长亭的官网进行查看。
GhostCat 主要是存在文件读取和包含漏洞
我们具体看下影响了哪些版本
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
影响范围很广,几乎囊括了6-9版本,为了方便演示 我自身搭建了一个6.0.0的版本,接下来我们将进行演示。
具体漏洞是Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。
在这里插入图片描述
启动tomcat
Tomcat-幽灵猫GhostCat漏洞复现_第1张图片
Tomcat AJP Connector 是什么?
Tomcat Connector 是 Tomcat 与外部连接的通道,它使得 Catalina 能够接收来自外部的请求,传递给对应的 Web 应用程序处理,并返回请求的响应结果。
默认情况下,Tomcat 配置了两个 Connector,它们分别是 HTTP Connector 和 AJP Connector:
HTTP Connector:用于处理 HTTP 协议的请求(HTTP/1.1),默认监听地址为 0.0.0.0:8080
AJP Connector:用于处理 AJP 协议的请求(AJP/1.3),默认监听地址为 0.0.0.0:8009
HTTP Connector 就是用来提供我们经常用到的 HTTP Web 服务。而 AJP Connector,它使用的是 AJP 协议(Apache Jserv Protocol),AJP 协议可以理解为 HTTP 协议的二进制性能优化版本,它能降低 HTTP 请求的处理成本,因此主要在需要集群、反向代理的场景被使用。
意思就是AJP的协议会用到一个8009的端口,那么这个漏洞肯定会是在端口8009上面
Tomcat-幽灵猫GhostCat漏洞复现_第2张图片
这是在github上面找的一个利用工具CNVD-2020-10487-Tomcat-Ajp-lfi-master,我们用它来测试下是否存在漏洞。
python CNVD-2020-10487-Tomcat-Ajp-lfi.py 127.0.0.1 -p 8009 -f WEB-INF/web.xml
Tomcat-幽灵猫GhostCat漏洞复现_第3张图片在这里插入图片描述
读取成功,发现确实存在漏洞,我们来看一看具体的修复方式。

修复漏洞
修复漏洞分为两种方式:
1.关注官网最新的公告升级到最新的版本或者没有这个漏洞的版本。
2.1 如果未使用AJP协议,不能更新版本或者版本太老的用户可以直接关闭该协议。
(1)XXX/conf/server.xml,找到如下行(XXX 为 Tomcat 的工作目录):

(2)将此行注释掉(或直接删掉此行)
(3)更改完毕后,重启 Tomcat 即可。
除以上措施外,当然也可以采用防火墙等办法以阻止不可信任的来源访问 Tomcat AJP Connector 端口。
在这里插入图片描述Tomcat-幽灵猫GhostCat漏洞复现_第4张图片
这里将AJP协议给注释掉以后发现已经不能再读取文件,说明该修复方式有效。

2.2 如果使用了AJP协议
如果确定服务器环境中使用到了 Tomcat AJP 协议,则建议将 Tomcat 升级到 9.0.31、8.5.51 或 7.0.100 版本,同时为 AJP Connector 配置 secret 来设置 AJP 协议认证凭证。
例如(注意必须将 YOUR_TOMCAT_AJP_SECRET 更改为一个安全性高、无法被轻易猜解的值):

而对于无法进行版本更新、或者是更老版本的用户,则建议为 AJP Connector 配置 requiredSecret 来设置 AJP 协议认证凭证。例如(注意必须将 YOUR_TOMCAT_AJP_SECRET 更改为一个安全性高、无法被轻易猜解的值):

在这里插入图片描述
这种方式监听指定的网卡和结合密钥的方式,在没有配置的时候8009是默认0.0.0.0,这样可以造成任何人访问。
Tomcat-幽灵猫GhostCat漏洞复现_第5张图片
Tomcat-幽灵猫GhostCat漏洞复现_第6张图片

复现到这里就结束了,有任何的不足请各位批评与指正。

你可能感兴趣的:(web)