CVE-2020-1938 Tomcat AJP 漏洞记录

漏洞描述

2020年1月6日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2020-1938)。攻击者利用该漏洞,可在未授权的情况下远程读取特定目录下的任意文件。由于Tomcat AJP协议存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若服务器端同时存在文件上传功能,攻击者可进一步实现远程代码的执行。

威胁等级

高危

影响范围

Apache Tomcat = 6

7 <= Apache Tomcat < 7.0.100

8 <= Apache Tomcat < 8.5.51

9 <= Apache Tomcat < 9.0.31

f79865b6a17a4127bdbc11bc1091de37.jpeg

环境搭建

环境:JAVA、Tomcat

Tomcat下载:github.com/apache/tomca

1da0f942baab33b773ab06e5e44c3b96.jpeg

ab117fec4782c51672ca44ab50f33dc0.jpeg

漏洞分析

参考:

cnvd.org.cn/webinfo/sho

tomcat.apache.org/conne

tomcat.apache.org/tomca

stackoverflow.com/quest


tomcat默认的conf/server.xml中配置了2个Connector(HTTP、AJP),一个为8080的对外提供的HTTP协议端口,另外一个就是默认的8009 AJP协议端口默认情况下,tomcat配置完成后,在conf/server.xml文件中AJP connector服务在8009端口监听。如图:

3b05d5fa7122f7250b392bf1df061350.jpeg


其中我们可以利用DeaultServlet来实现文件读取。 通过serveResource方法来获取资源文件。 然后再通过控制ajp控制的上述三个属性来读取文件。

漏洞复现

备注:在实验复现过程中要注意Tomcat的版本,有些Tomcat版本是默认没有开启AJP的默认端口8009,或者被注释掉了。

下图为java的检测工具复现图:

d379b74fbffc8ce0194da9d3186c7e96.jpeg

下图为python的检测工具复现图:

c4dc49307f979a2cd3b48859d1762457.jpeg

修复建议

目前,Apache官方已发布9.0.31、8.5.51及7.0.100版本对此漏洞进行修复,建议用户尽快升级新版本或采取临时缓解措施:

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" />

信息参考:

cnvd.org.cn/webinfo/sho

tomcat.apache.org/conne

tomcat.apache.org/tomca

stackoverflow.com/quest


工具参考:

github.com/0nise/cve-20


更多白帽黑客学习资料,请关注破壳学院

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值