当前位置: 代码迷 >> 综合 >> Apache Tomcat文件包含漏洞复现(CVE-2020-1938)
  详细解决方案

Apache Tomcat文件包含漏洞复现(CVE-2020-1938)

热度:102   发布时间:2023-10-16 10:09:35.0

漏洞简介

漏洞编号:

CVE-2020-1938

漏洞详情:

Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。而该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者可通过构造特定参数读取webapp目录下的任意文件。

漏洞影响范围:

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

漏洞复现

环境搭建:

安装docker
1.    curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
2.    yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
3.    yum install docker-ce
4.    systemctl start docker
更换镜像的下载源
vi /etc/docker/daemon.json

直接替换里面的内容为:
{
“registry-mirrors”: [“https://xxxxx.mirrors.aliyun.com”]
}
网址在阿里云容器镜像服务获取:
https://www.aliyun.com/product/acr?spm=a2c4g.11174283.2.1.625e4541j1IFor
Apache Tomcat文件包含漏洞复现(CVE-2020-1938)

重启docker服务:

systemctl daemon-reload
systemctl restart docker

测试docker服务是否正常:

docker pull busybox
docker run busybox echo “hello world” 

输出hello world即docker正常运行。

部署漏洞所需环境:

复现漏洞可以直接使用vulhub上的docker镜像
项目可以下载至任意目录下,我这里在root目录下

git clone https://github.com/vulhub/vulhub

进入项目需要复现的漏洞编号下

cd vulhub/vulhub-master/tomcat/CVE-2020-1938

把我们需要的项目起来

docker-compose up -d

此命令需要python环境,还需要再单独下载

yum install -y python38
可能yum源里没有python38,也可以装其他版本,可以执行get-pip.py文件即可
wget https://bootstrap.pypa.io/get-pip.py
sudo  python3 get-pip.py
pip -version
pip install docker-compose

环境搭建完成,测试docker运行情况,查看映射端口:

docker ps

Apache Tomcat文件包含漏洞复现(CVE-2020-1938)web服务端口为8080,8009为AJP服务端口,打开浏览器输入虚拟机+8080出现下图则说明环境搭建成功。
Apache Tomcat文件包含漏洞复现(CVE-2020-1938)

漏洞验证:

这里提供两个exp地址(我用的第二个):

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

靶机添加测试文件:
Apache Tomcat文件包含漏洞复现(CVE-2020-1938)
攻击机尝试利用exp读取该文件:

python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.0.105 -p 8009 -f WEB-INF/test.txt

测试读取成功,还可以读取目录下其他文件,这里不再演示至此漏洞复现成功。
Apache Tomcat文件包含漏洞复现(CVE-2020-1938)

漏洞修复意见:

1.关闭AJP默认开启端口(这里是8009)
2.升级tomcat,新版本已经修复漏洞。

加油!

  相关解决方案