前言
Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。此漏洞为文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件、源代码等。
编号
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
复现过程
我这里是使用docker 拉取 tomcat-8.5.32 环境复现的
docker搜索tomcat镜像
docker search tomcat-8.5.32
拉取镜像
docker pull duonghuuphuc/tomcat-8.5.32
拉取完成后查看是否拉取成功
docker images
运行镜像并映射端口
docker run -d -p 8080:8080 -p 8090:8090 duonghuuphuc/tomcat-8.5.32
并查看是否运行成功
docker ps -a
成功后访问系统地址
nmap 一下试试
至此环境搭建成功
exp1
https://github.com/0nise/CVE-2020-1938
exp2
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
演示
修复方案
-
临时禁用AJP协议端口,在conf/server.xm l配置文件中注释掉<Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />
-
配置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