漏洞描述
cve-2020-1938是一个出现在Apache-Tomcat-Ajp的文件包含漏洞,攻击者可以利用该漏洞读取包含Tomcat上所有的webapp目录下的任意文件,如:webapp配置文件或源代码。由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。同时,若该服务器存在文件上传功能,攻击者还可以进一步实现远程代码执行。
前提条件
对于处在漏洞影响版本范围内的 Tomcat 而言,若其开启 AJP Connector 且攻击者能够访问 AJP Connector 服务端口的情况下,即存在被 Ghostcat 漏洞利用的风险。注意 Tomcat AJP Connector 默认配置下即为开启状态,且监听在 0.0.0.0:8009。
影响版本
- Apache Tomcat 9.x < 9.0.31
- Apache Tomcat 8.x < 8.5.51
- Apache Tomcat 7.x < 7.0.100
- Apache Tomcat 6.x
环境搭建
-
进入靶场
-
cd vulhub/tomcat/CVE-2020-1938
-
开启靶场
-
docker-compose up -d
-
查看靶场信息
-
docker ps
-
访问网址
-
youip:8080
漏洞复现
首先在环境内创建一个flag,方便复现
通过nmap扫出开放端口:8080,8009,并且8009端口的AJP协议是开启的
然后直接通过exp读取python exp.py 192.168.198.129 -p 8009 -f flag.txt