您的位置:首页 > 运维架构 > Tomcat

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

2020-03-31 18:43 926 查看

前言: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%。

复现

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

一、搭建环境


看一下版本

这里使用的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
文件所在目录

读取WEB-INF/web.xml文件

好了,至此结束。
案例使用exp:https://github.com/hypn0s/AJPy

解决方案

  1. 升级至安全版本
  2. 临时禁用AJP协议端口,在conf/server.xm l配置文件中注释掉<Connector port=“8009”
    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

  • 点赞 2
  • 收藏
  • 分享
  • 文章举报
霸唱轻柔 发布了1 篇原创文章 · 获赞 3 · 访问量 1094 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: