1.漏洞描述
Apache Tomcat服务器存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件,如:webapp配置文件或源代码等。由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。
2.漏洞编号
CVE:CVE-2020-1938
CNVD:CNVD-2020-10487
3.影响版本
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
4.漏洞POC下载
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
5.漏洞环境搭建
1)本环境使用docker搭建,切换到vulhub/tomcat/CVE-2020-1938目录下,docker-compose up -d下载漏洞环境
2)访问http://ip:8080如下图,环境搭建成功
6.漏洞复现
执行命令python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py -f WEB-INF/web.xml 192.168.210.227,成功读取web.xml文件
7.漏洞修复建议
1)更新到安全版本
Apache Tomcat 7.0.100
Apache Tomcat 8.5.51
Apache Tomcat 9.0.31
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
2)关闭AJP服务,修改Tomcat配置文件Service.xml,注释掉
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3)配置ajp配置中的secretRequired跟secret属性来限制认证