CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现,加固

 

前言

  Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。此漏洞为文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件、源代码等。

去edusrc看了一眼,刷的有点眼晕,评分降低到了2rank高危洞,刷的好猛呀!这边呢,随手也测试了一下,暂时直接实战给大家看一下“文件读取”,可以直接读取到敏感信息文件,比如数据库配置信息文件,下面先贴张图稳稳军心。

CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现,加固_第1张图片

编号

CNVD-2020-10487

CVE-2020-1938

影响

        Apache Tomcat = 6

        7 <= Apache Tomcat <7.0.100

        8 <= Apache Tomcat <8.5.51

        9 <= Apache Tomcat <9.0.31

CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现,加固_第2张图片

复现过程

我这里是使用docker 拉取 tomcat-8.5.32 环境复现的

docker搜索tomcat镜像

docker search tomcat-8.5.32

拉取镜像

docker pull duonghuuphuc/tomcat-8.5.32

拉取完成后查看是否拉取成功 

docker images

CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现,加固_第3张图片

运行镜像并映射端口

docker run -d -p 8080:8080 -p 8090:8090 duonghuuphuc/tomcat-8.5.32

并查看是否运行成功

docker ps -a

成功后访问系统地址

CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现,加固_第4张图片

nmap 一下试试

CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现,加固_第5张图片

至此环境搭建成功

exp1

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

exp2

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

漏洞演示

CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现,加固_第6张图片

修复方案

  • 临时禁用AJP协议端口,在conf/server.xm l配置文件中注释掉
  • 配置ajp配置中的secretRequired跟secret属性来限制认证
  • 官方下载最新版下载地址:

https://tomcat.apache.org/download-70.cgi

https://tomcat.apache.org/download-80.cgi

https://tomcat.apache.org/download-90.cgi

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

其他防护措施

如果相关用户暂时无法进行版本升级,可根据自身情况采用下列防护措施。

一、若不需要使用Tomcat AJP协议,可直接关闭AJP Connector,或将其监听地址改为仅监听本机localhost。

具体操作:

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

CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现,加固_第7张图片

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

–>

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

二、若需使用Tomcat AJP协议,可根据使用版本配置协议属性设置认证凭证。

使用Tomcat 7和Tomcat 9的用户可为AJP Connector配置secret来设置AJP协议的认证凭证。例如(注意必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被轻易猜解的值):

使用Tomcat 8的用户可为AJP Connector配置requiredSecret来设置AJP协议的认证凭证。例如(注意必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被轻易猜解的值):

你可能感兴趣的:(CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现,加固)