Aapache Tomcat AJP 文件包含漏洞(CVE-2020-1938)

1 漏洞描述

CVE-2020-1938 是 Apache Tomcat 中的一个严重安全漏洞,该漏洞涉及到 Tomcat 的 AJP(Apache JServ Protocol)连接器。由于 AJP 协议在处理请求时存在缺陷,攻击者可以利用此漏洞读取服务器上的任意文件,甚至可能进一步实现远程代码执行。

2 漏洞原理

Tomcat 的默认配置中,conf/server.xml 文件配置了两个 Connector:一个用于处理 HTTP 协议的请求(通常为 8080 端口),另一个用于处理 AJP 协议的请求(默认为 8009 端口)。这两个端口默认都监听在外网 IP 上。

当 Tomcat 接收 AJP 请求时,会调用 org.apache.coyote.ajp.AjpProcessor 来处理 AJP 消息。在 prepareRequest 方法中,Tomcat 会从 AJP 请求中提取内容,并将其设置为请求对象的 Attribute 属性。然而,由于 AJP 协议在处理请求时存在缺陷,攻击者可以构造特定的请求参数,导致 Tomcat 错误地将文件路径作为请求参数进行处理,从而读取服务器上的任意文件。

3 漏洞影响

CVE-2020-1938 漏洞影响了 Apache Tomcat 的多个版本,包括但不限于:

  • Apache Tomcat 6

  • Apache Tomcat 7 系列 < 7.0.100

  • Apache Tomcat 8 系列 < 8.5.51

  • Apache Tomcat 9 系列 < 9.0.31

4 vulhub靶场环境搭建

进入目录
cd vulhub/tomcat/CVE-2020-1938
拉去环境
docker compose up -d
查看端口
docker-compose ps

访问 ,您将看到页面,表示环境正在成功运行。

5 漏洞复现

从github上下载POC

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

直接克隆到kali虚拟机中

git clone https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi.git

执行POC验证漏洞,可以看到复现成功!

python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.1.20 -p 8009 -f WEB-INF/web.xml

6 漏洞防御

为了防范 CVE-2020-1938 漏洞,你可以采取以下措施:

  1. 升级 Apache Tomcat 至不受影响的版本。这是最直接、最有效的防御措施。

  2. 如果无法立即升级 Tomcat,请确保 AJP 连接器仅在内网中启用,并限制可访问该端口的 IP 地址范围。

  3. 定期检查并更新 Tomcat 的安全补丁和配置文件,以确保系统的安全性。

  4. 加强服务器的访问控制和权限管理,限制对敏感文件和目录的访问权限。

  5. 部署 Web 应用程序防火墙(WAF)等安全设备,对 AJP 请求进行过滤和检测,防止恶意请求的攻击。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/687432.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

融入新科技的SLM27211系列 120V, 3A/4.5A高低边高频门极驱动器兼容UCC27284,MAX15013A

SLM27211是高低边高频门极驱动器&#xff0c;集成了120V的自举二极管&#xff0c;支持高频大电流的输出&#xff0c;可在8V~17V的宽电压范围内驱动MOSFET&#xff0c;独立的高、低边驱动以方便控制&#xff0c;可用于半桥、全桥、双管正激和有源钳位正激等拓。有极好的开通、关…

AI早班车5.11

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

HTTPS 原理和 TLS 握手机制

HTTPS的概述与重要性 在当今数字化时代&#xff0c;网络安全问题日益凸显&#xff0c;数据在传输过程中的安全性备受关注。HTTPS 作为一种重要的网络通信协议&#xff0c;为数据的传输提供了强有力的安全保障。它是在 HTTP 的基础上发展而来&#xff0c;通过引入数据加密机制&a…

深入学习指针3

目录 前言 1.二级指针 2.指针数组 3.指针数组模拟二维数组 前言 Hello,小伙伴们我又来了&#xff0c;上期我们讲到了数组名的理解&#xff0c;指针与数组的关系等知识&#xff0c;那今天我们就继续深入到学习指针域数组的练联系&#xff0c;如果喜欢作者菌生产的内容还望不…

实时路况信息:盲人出行的守护者

在这个快速发展的数字时代&#xff0c;科技的力量正以前所未有的方式改变着人们的生活&#xff0c;尤其是对于视障群体而言&#xff0c;技术的每一次进步都可能意味着独立与自由的新篇章。在这样的背景下&#xff0c;实时路况信息对盲人的帮助成为了社会关注的热点话题&#xf…

JAVA使用Apache POI动态导出Word文档

文章目录 一、文章背景二、实现步骤2.1 需要的依赖2.2 创建模板2.3 书写java类2.3.1 模板目录2.3.2 Controller类2.3.2 工具类 2.4 测试2.4.1 浏览器请求接口2.4.2 下载word 三、注意事项四、其他导出word实现方式 一、文章背景 基于Freemarker模版动态生成并导出word文档存在弊…

去除Windows11广告,这款开源工具一键搞定!(汉化版)

文章目录 &#x1f4d6; 介绍 &#x1f4d6;&#x1f3e1; 演示环境 &#x1f3e1;&#x1f4d2; 工具介绍 &#x1f4d2;&#x1f388; 获取方式 &#x1f388;&#x1f4e2; 声明 &#x1f4d6; 介绍 &#x1f4d6; 你是否厌倦了在Windows 11中不断弹出的广告&#xff1f;是否…

Set接口

Set接口的介绍 Set接口基本介绍 无序&#xff08;添加和取出的顺序不一致&#xff09;&#xff0c;没有索引不允许重复元素&#xff0c;所以最多包含一个nullJDK API中Set接口的实现类&#xff1a;主要有HashSet&#xff1b;TreeSet Set接口的常用方法 和List 接口一样&am…

加速vivado编译工程

系统环境&#xff1a;windows11IDE环境&#xff1a;vivado2023.2工程&#xff1a;vivado自带的example project&#xff08;wave_gen&#xff09; Vivado支持多线程&#xff0c;可进一步缩短编译时间&#xff0c;这需要通过如下的Tcl脚本进行设置。综合阶段&#xff0c;Vivado可…

【ArcGISProSDK】condition属性

示例 通过caption属性可以看出esri_mapping_openProjectCondition的条件是一个工程被打开 condition的作用 由此可知示例中的Tab实在工程被打开才能使用&#xff0c;否则他禁用显示灰色&#xff0c;在未禁用的时候说明条件满足。 参考文档 insertCondition 元素 (arcgis.com…

金南瓜EAP库使用开发

前言 最近做了 一个半导体公司的上位机开发。厂商要求要支持EAP通讯。 先了解一下EAP是什么吧&#xff1f;百度资料 EAP&#xff08; Equipment Automation Program&#xff09;设备自动化处理&#xff0c;工厂实现设备自动化生产和管理。 1. 机台状态数据收集&#xff0c;包…

【C#】WebSoket 演示(使用websocket-sharp库)

Example 3服务器 Example1 客户端 示例3 此源代码片段包含了如何使用WebSocketSharp库来创建一个HTTP服务器&#xff0c;并提供WebSocket服务。 分析整个代码&#xff0c;我们可以归纳出以下关键信息&#xff1a; 导入了一系列重要的命名空间&#xff0c;包括系统配置、加密库、…