Tomcat系列漏洞之五——AJP协议文件读取漏洞(CVE-2020-1938)
Tomcat系列漏洞之五——AJP协议文件读取漏洞(CVE-2020-1938)
原创 simeon的文章 小兵搞安全 2024-03-13 07:00
5.1漏洞简介
1.漏洞简介
2020年,长亭科技安全研究人员全球首次发现了一个存在于流行服务器 Tomcat 中的文件读取/包含漏洞,并第一时间提交厂商修复。
2月14日,Apache Tomcat 官方发布安全更新版本,修复漏洞。2月20日,国家信息安全漏洞共享平台(CNVD)发布安全公告,该漏洞综合评级为高危,漏洞编号为CNVD-2020-10487,CVE 编号 CVE-2020-1938。
cve-2020-1938是一个出现在Apache-Tomcat-Ajp的文件包含漏洞,攻击者可以利用该漏洞读取包含Tomcat上所有的webapp目录下的任意文件,如:webapp配置文件或源代码。由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。同时,若该服务器存在文件上传功能,攻击者还可以进一步实现远程代码执行。
2.影响版本
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
5.2漏洞复现
1.漏洞利用工具
https://github.com/sv3nbeast/CVE-2020-1938-Tomact-file_include-file_read
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
2.利用Vulhub启动测试环境
cd /opt/vulhub/tomcat/CVE-2020-1938
docker-compose up -d
3.读取文件内容
(1)下载漏洞利用工具
https://github.com/sv3nbeast/CVE-2020-1938-Tomact-file_include-file_read
(2)执行命令
python2 CVE-2020-1938_fileread.py -p 8009 -f /test.txt 192.168.19.134
5.3漏洞修复
以官方发布的9.0.31版本的修复代码为例,主要做了以下修复:
1.默认在conf/server.xml中禁用AJP连接器;
2.强制AJP协议默认监听本地环回地址,而不是0.0.0.0;
3.若使用AJP协议,设置secretRequired属性为true,强制配置secret来设置AJP协议认证凭证;