Apache Tomcat會開啟AJP連接器,方便與其他WEB服務器通過AJP協議進行交互。由於Tomcat本身也內含了HTTP服務器,因此也可以視作單獨的Web服務器。此漏洞為文件包含漏洞,攻擊者可利用該漏洞讀取或包含Tomcat上所有webapp目錄下的任意文件,如:webapp配置文件、源代碼等
影響版本: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 search tomcat-8.5.32 #docker搜索tomcat鏡像
docker pull duonghuuphuc/tomcat-8.5.32 #拉取鏡像
docker images #拉取完成后查看是否拉取成功
docker run –d –p 8080:8080 –p 8009:8009 duonghuuphuc/tomcat-8.5.32 #運行鏡像並映射端口
docker ps –a #查看是否運行成功
訪問地址
nmap查看
漏洞演示:
exp地址:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
使用腳本讀取WEB-INF/web.xml
修復方案
臨時禁用AJP協議端口,在conf/server.xml 配置文件中注釋掉<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