CVE-2020-1938任意文件读取漏洞复现
漏洞介绍
1. Java是目前Web开发中最主流的编程语言,而 Tomcat 是当前最流行的 Java 中间件服务器之一,从初版发布到现在已经有二十多年历史,在世界范围内广泛使用。
2. CVE-2020-1938是由长亭科技安全研究员发现的存在于 Tomcat 中的安全漏洞,由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。
3. 这个漏洞影响全版本默认配置下的 Tomcat(在我们发现此漏洞的时候,确认其影响 Tomcat 9/8/7/6 全版本,而年代过于久远的更早的版本未进行验证),这意味着它在 Tomcat 里已经潜伏了长达十多年的时间。
影响版本
- Apache Tomcat = 6
- 7 <= Apache Tomcat < 7.0.100
- 8 <= Apache Tomcat < 8.5.51
- 9 <= Apache Tomcat < 9.0.31
漏洞复现
本实验是在vulab靶场内完成,在其它系统内可能会出现问题。
私信助安社区公众号发送 靶场 领取相关靶场文件
创建文件夹
mkdir tomcat-ghostcat
进入创建好的文件夹
cd tomcat-ghostcat
拉取靶场启动脚本
wget repo.vulab.io/tomcat/CVE-2020-1938/1.0.1 -O tomcat-ghostcat
启动漏洞docker容器
sudo docker-compose -f tomcat-ghostcat up
在本机访问192.168.52.130访问开启的web服务,这里我配置了hosts
可以看到CVE-2020-1938已经成功载入,使用namp扫描一下端口,语句使用军师的推荐的查询语句
sudo nmap -v -sS -p1-9000 -Pn -T4 -A 192.168.52.130 --script http-methods --script-args http.useragent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0"
发现服务器开启了8009端口,ajp协议端口就是8009端口,可能存在ajp协议,使用xray工具扫描下端口
xray_windows_386.exe servicescan --target 192.168.52.130:8009
爆出了存在幽灵猫漏洞的CVE-2022-1938漏洞,使用相关poc测试发现成功拉取到文件
漏洞复现成功。
漏洞修复
更新tomcat版本,将tomcat升级到9.0.31、8.5.51或者7.0.100版本
禁止使用AJP协议
配置secret和secretRequired来设置AJP协议的认证凭证
原文转载自,助安社区(secself.com/)
关注公众号【助安社区】渗透零基础到入门都在这,社区内部红队沙龙、资源共享和大厂工作经验。真正热爱安全和喜欢技术交流的小伙伴欢迎加入我们。
声明
本公众号的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
参考
xray
https://www.chaitin.cn/en/ghostcat#download
CNVD-2020-10487-Tomcat-Ajp-lfi
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi