前言
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屬性來限制認證
