Apache-Tomcat-Ajp漏洞(CVE-2020-1938) ——Ghostcat
前言
由于Tomcat AJP协议设计缺陷,攻击者可通过Tomcat AJP Connector可以读取或包含Tomcat上所有webapp目录下的任意文件,如读取webapp配置文件或源代码,如有文件上传功能,则可搭配文件包含达到远程代码执行的危害
编号
CNVD-2020-10487
CVE-2020-1938
影响
Apache Tomcat = 6
7 <= Apache Tomcat < 7.0.100
8 <= Apache Tomcat < 8.5.51
9 <= Apache Tomcat < 9.0.31
复现
官网下载Tomcat版本9.0.20,在受影响范围内,搭建成功后
漏洞出在开启了AJP协议上,打开AJP协议进行复现,在conf下的server.xml中配置AJP协议,
主要是两处,第一处连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。AJP连接器可以通过AJP协议和一个web容器进行交互
第二处连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器
使用脚本Apache-Tomcat-Ajp漏洞POC进行测试,如下读取web.xml成功
读取index.jsp文件
利用脚本:
以下相关脚本某站上都有,可以自己去找,这里只给下名字及用途
1、CNVD-2020-10487-Tomcat-Ajp-lfi //可用来验证读取文件
2、2020-10487.py //py3的脚本,搭配文件上传可执行rce
3、ajpfuzzer_v0.6.jar //AJP构造器,用来搭配msf直接拿shell
个人看法:
此漏洞对于大多数企业来说危害性并不是特别大,首先8009端口必须对外映射(此处只考虑外网入侵方式),因此企业可以通过查映射的8009开放情况来评估,第二点内网中可能会大量存在此漏洞(8009默认开启),因此内网中才是重灾区
PS:此处只做复现学习,请勿用于非法用途