Tomcat 幽灵猫任意文件读取漏洞(CVE-2020-1938)

漏洞描述

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器。Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。

漏洞影响版本

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

漏洞危害

攻击者可利用该漏洞进行任意文件包含读取,从而达到代码执行的危害。

漏洞分析

Tomcat服务器通过Connector连接器组件与客户程序建立连接,“连接器”表示接收请求并返回响应的端点。即Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。
Tomcat默认在其配置文件server.xml中配置了两种connector:
在这里插入图片描述
HTTP connector配置如下,它监听8080端口,负责建立HTTP连接。
在这里插入图片描述
AJP连接器可以通过AJP协议和另一个web容器进行交互。它监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。AJP连接器可以通过AJP协议和一个web容器进行交互。
默认情况下,tomcat配置完成后,在conf/server.xml文件中AJP connector服务在8009端口监听
在这里插入图片描述
在tomcat服务启动后,查看本地端口,可以发现8009端口已经处于监听状态
在这里插入图片描述
通过Gh0stcat漏洞,攻击者可以读取Tomcat下部署的所有webapp目录下的任意文件。同时,如果此应用在网站服务中具备上传功能,攻击者也可以先向服务端上传一个含有JSP代码的恶意文件(上传文件可以是任意类型,图片、纯文本文件等),然后利用Gh0stcat进行文件包含,从而达到代码执行的危害。

漏洞复现

搭建环境:
1.启动docker:
service start docker
2.在docker-compose.yml文件所在的路径执行:
docker-compose build
docker-compose up -d
在这里插入图片描述
POC验证:
使用方法:python3 CVE-2020-1938.py 192.168.60.244 -p 8009
在这里插入图片描述

修复建议

(1)临时禁用AJP协议端口,在conf/server.xml配置文件中注释掉:<Connector port=“8009” protocol="AJP/1.3"redirectPort=“8443” />
(2)配置ajp配置中的secretRequired跟secret属性来限制认证
(3)下载更新版本。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值