CVE-2020-1938:Apache Tomcat-AJP任意文件读取漏洞复现

前言:Tomcat-AJP

在这里插入图片描述

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta
项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

AJP(Apache JServ Protocol)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过TCP连接和 SERVLET容器连接。

编号

CVE编号:CVE-2020-1938
CNVD编号:CNVD-2020-10487

影响版本

tomcat 6
tomcat7 ~ 7.0.100
tomcat8 ~ 8.5.51
tomcat9 ~ 9.0.31

漏洞简介

此漏洞属于文件包含漏洞,攻击者可构造恶意的请求包利用此漏洞读取webapp目录下的任意文件,如:配置文件、源代码等。
CNVD平台对Apache Tomcat AJP协议在我国境内的分布情况进行统计,结果显示我国境内的IP数量约为55.5万,通过技术检测发现我国境内共有43197台服务器受此漏洞影响,影响比例约为7.8%。

复现

复现过程在私人渗透测试环境下完成!

一、搭建环境

CVE-2020-1938:Apache Tomcat-AJP任意文件读取漏洞复现_第1张图片
看一下版本
CVE-2020-1938:Apache Tomcat-AJP任意文件读取漏洞复现_第2张图片
这里使用的Tomcat是8.5.32版本,至此环境搭建完毕。
在这里插入图片描述
在默认web目录(ROOT)中创建个测试文本,并写入test字符

二 、操作

好了,上面准备就绪,开始

读取文件命令:

python tomcat.py read_file --webapp=ROOT /test.txt 127.0.0.1
参数:

read_file 操作(读取文件) webapp 指定web目录 /test.txt 文件所在目录

CVE-2020-1938:Apache Tomcat-AJP任意文件读取漏洞复现_第3张图片

读取WEB-INF/web.xml文件
CVE-2020-1938:Apache Tomcat-AJP任意文件读取漏洞复现_第4张图片
好了,至此结束。
案例使用exp:https://github.com/hypn0s/AJPy

解决方案

  1. 升级至安全版本
  2. 临时禁用AJP协议端口,在conf/server.xm l配置文件中注释掉 protocol="AJP/1.3"redirectPort=“8443” /> 或者防火墙添加AJP的端口限制对公网的开放
  3. 配置ajp配置中的secretRequired跟secret属性来限制认证

分享几个EXP

  1. https://github.com/0nise/CVE-2020-1938
  2. https://github.com/hypn0s/AJPy
  3. https://github.com/xindongzhuaizhuai/CVE-2020-1938

相关信息:https://www.cnvd.org.cn/webinfo/show/5415

你可能感兴趣的:(渗透)