首页 安全文摘 漏洞分析 正文

CVE-2020-1938 Tomcat 文件读取/包含漏洞复现

0X1 漏洞概述日前,长亭科技安全研究人员全球首次发现了一个存在于流行服务器 Tomcat 中的文件读取/包含漏洞,并第一时间提交厂商修复。 2月14日,Apache Tomcat 官方发布安全更新版本,修复漏洞。2月20日,国家信息安全漏洞共享平台(CNVD)发布安全公告,该漏洞综合评级为高危,漏洞编号为CNVD-2020-10487,CVE 编号 CVE

0X1 漏洞概述

日前,长亭科技安全研究人员全球首次发现了一个存在于流行服务器 Tomcat 中的文件读取/包含漏洞,并第一时间提交厂商修复。 

2月14日,Apache Tomcat 官方发布安全更新版本,修复漏洞。2月20日,国家信息安全漏洞共享平台(CNVD)发布安全公告,该漏洞综合评级为高危,漏洞编号为CNVD-2020-10487,CVE 编号 CVE-2020-1938。

漏洞影响范围包括

Apache Tomcat 6

Apache Tomcat 7 < 7.0.100

Apache Tomcat 8 < 8.5.51

Apache Tomcat 9 < 9.0.31

0X2 环境搭建

在官方网站上下载源码

http://archive.apache.org/dist/tomcat/ 

https://github.com/apache/tomcat/releases

下载完成之后,放置在任意目录下,并安装好Java环境,这里不在赘述。

配置完成之后,启动服务

CVE 2020 1938 Tomcat 文件读取/包含漏洞复现 安全文摘 漏洞分析  第1张

浏览器访问

CVE 2020 1938 Tomcat 文件读取/包含漏洞复现 安全文摘 漏洞分析  第2张环境搭建完成。

0X3 漏洞分析

Tomcat服务器通过Connector连接器组件与客户程序建立连接,“连接器”表示接收请求并返回响应的端点。即Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。

Tomcat默认在其配置文件server.xml中配置了两种connector:

HTTP connector
AJP connector

HTTP connector配置如下,它监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个,这里我改成了8000端口。

CVE 2020 1938 Tomcat 文件读取/包含漏洞复现 安全文摘 漏洞分析  第3张

AJP连接器可以通过AJP协议和另一个web容器进行交互。它监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。AJP连接器可以通过AJP协议和一个web容器进行交互。

默认情况下,tomcat配置完成后,在conf/server.xml文件中AJP connector服务在8009端口监听

CVE 2020 1938 Tomcat 文件读取/包含漏洞复现 安全文摘 漏洞分析  第4张

在tomcat服务启动后,查看本地端口,可以发现8009端口已经处于监听状态

CVE 2020 1938 Tomcat 文件读取/包含漏洞复现 安全文摘 漏洞分析  第5张

通过Gh0stcat漏洞,攻击者可以读取Tomcat下部署的所有webapp目录下的任意文件。同时,如果此应用在网站服务中具备上传功能,攻击者也可以先向服务端上传一个含有JSP代码的恶意文件(上传文件可以是任意类型,图片、纯文本文件等),然后利用Gh0stcat进行文件包含,从而达到代码执行的危害。

0X4 漏洞利用

该漏洞从昨天爆出之后,在众多平台上已经有了验证代码,如下

https://github.com/0nise/CVE-2020-1938

https://github.com/nibiwodong/CNVD-2020-10487-Tomcat-ajp-POC

https://github.com/Kit4y/CNVD-2020-10487-Tomcat-Ajp-lfi-Scanner

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi/

使用其中任意一个POC文件进行验证,读取WEB-INF/web.xml文件

CVE 2020 1938 Tomcat 文件读取/包含漏洞复现 安全文摘 漏洞分析  第6张

读取ROOT目录下的build.xml文件内容

CVE 2020 1938 Tomcat 文件读取/包含漏洞复现 安全文摘 漏洞分析  第7张

可以看到,均可以成功读取。

0X5 加固修复

1.   如未使用Tomcat AJP协议:

如未使用 Tomcat AJP 协议,可以直接将 Tomcat 升级到 9.0.31、8.5.51或 7.0.100 版本进行漏洞修复

如无法立即进行版本更新、或者是更老版本的用户,建议直接关闭AJPConnector,或将其监听地址改为仅监听本机localhost。

具体操作:

(1)编辑 <CATALINA_BASE>/conf/server.xml,找到如下行(<CATALINA_BASE> 为 Tomcat 的工作目录):

<Connector port="8009"protocol="AJP/1.3"redirectPort="8443"/>

(2)将此行注释掉(也可删掉该行):

<!--<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"/>-->

(3)保存后需重新启动,规则方可生效。

2.   如果使用了Tomcat AJP协议:

建议将Tomcat立即升级到9.0.31、8.5.51或7.0.100版本进行修复,同时为AJP Connector配置secret来设置AJP协议的认证凭证。例如(注意必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被轻易猜解的值):

<Connector port="8009"protocol="AJP/1.3"redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS"secret="YOUR_TOMCAT_AJP_SECRET"/>

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

<Connector port="8009"protocol="AJP/1.3"redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS"requiredSecret="YOUR_TOMCAT_AJP_SECRET"/>

0X6 参考链接

https://github.com/0nise/CVE-2020-1938

https://github.com/nibiwodong/CNVD-2020-10487-Tomcat-ajp-POC

https://github.com/Kit4y/CNVD-2020-10487-Tomcat-Ajp-lfi-Scanner

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi/

https://www.cnvd.org.cn/webinfo/show/5415

https://mp.weixin.qq.com/s/D1hiKJpah3NhEBLwtTodsg

文由微信公众号安全漏洞环境学习

海报

本文转载自互联网,如有侵权,联系删除

转载请注明本文地址:https://heibai.org.cn/1666.html

相关推荐

从偶遇Flarum开始的RCE之旅

从偶遇Flarum开始的RCE之旅

事先声明:本次测试过程完全处于本地或授权环境,仅供学习与参考,不存在未授权测试过程,请读者勿使用该漏洞进行未授权测试,否则作者不承担任何...

WEB安全 2022-08-21 0 10403

2022年蓝队初级护网总结

2022年蓝队初级护网总结

一. 设备误报如何处理? 答:来自外网的误报说明安全设备需要进行策略升级,不需要处置。如果是来自内网的误报可以和负责人协商一下...

安全文摘 2022-08-21 0 10382

发布评论

ainiaobaibaibaibaobaobeishangbishibizuichiguachijingchongjingdahaqiandaliandangaodw_dogedw_erhadw_miaodw_tuzidw_xiongmaodw_zhutouganbeigeiliguiguolaiguzhanghahahahashoushihaixiuhanheixianhenghorse2huaixiaohuatonghuaxinhufenjiayoujiyankeaikeliankouzhaokukuloukunkuxiaolandelinileimuliwulxhainiolxhlikelxhqiuguanzhulxhtouxiaolxhwahahalxhzanningwennonuokpinganqianqiaoqinqinquantouruoshayanshengbingshiwangshuaishuijiaosikaostar0star2star3taikaixintanshoutianpingtouxiaotuwabiweifengweiquweiwuweixiaowenhaowoshouwuxiangjixianhuaxiaoerbuyuxiaokuxiaoxinxinxinxinsuixixixuyeyinxianyinyueyouhenghengyuebingyueliangyunzanzhajizhongguozanzhoumazhuakuangzuohenghengzuoyi
感谢您的支持