Tomcat Ajp文件读取漏洞复现(CVE-2020-1938)

漏洞简介

由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。
https://cve.mitre.org/cgi-bin/cvename.cgi?name=2020-1938

影响范围

Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31

环境搭建

下载镜像

docker pull negoowen/ghostcat:1.0

Tomcat Ajp文件读取漏洞复现(CVE-2020-1938)

启动镜像

docker run -d -p 8080:8080 -p 8009:8009 --name ghostcat negoowen/ghostcat:1.0

Tomcat Ajp文件读取漏洞复现(CVE-2020-1938)
环境搭建成功
Tomcat Ajp文件读取漏洞复现(CVE-2020-1938)

漏洞复现

读取文件

镜像里已经写入一个test.txt文件,以此文件做测试
Tomcat Ajp文件读取漏洞复现(CVE-2020-1938)
python CVE-2020-1938.py -p 8009 -f test.txt 192.168.195.133

Tomcat Ajp文件读取漏洞复现(CVE-2020-1938)

修复建议

  1. 官方升级
    Apache Tomcat 7.0.100
    Apache Tomcat 8.5.51
    Apache Tomcat 9.0.31
  2. 关闭Ajp或只监听本地
    https://news.ssssafe.com/archives/4224

EXP收集

  1. https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
  2. https://github.com/0nise/CVE-2020-1938
  3. https://github.com/xindongzhuaizhuai/CVE-2020-1938