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://xiahunao.cn/news/3029410.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

keil5软件安装教程(MDKv5.39)

keil5软件安装分为三部分&#xff1a; 目录 1.安装mdk 2.激活mdk 3.安装STM32芯片包 1.安装mdk 安装包链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1PZoGhzI5Y19ROv7xe9QJKA?pwdgt3s 提取码&#xff1a;gt3s 1、下载keil5的压缩包并解压&#xff0c;鼠…

通俗的理解网关的概念的用途(三):你的数据包是如何到达下一层的

其实&#xff0c;这一章我写不好&#xff0c;因为这其中会涉及到一些计算和一些广播等概念&#xff0c;本人不善于此项。在此略述&#xff0c;可以参考。 每台设备的不同连接在获得有效的IP地址后&#xff0c;会根据IP地址的规则和掩码的规则&#xff0c;在操作系统和交换机&a…

【C++】继承 — 继承的引入、赋值切片详细讲解

前言 我们知道C语言是一门面向对象编程的语言&#xff0c;而面向对象编程有三大特性&#xff0c;它们分别是&#xff1a; 封装继承多态 目录 1. 继承的概念及定义1.1继承的概念1.2继承的定义格式1.3 继承的使用 2 基类和派生类对象赋值转换3 继承中的作用域3.1 派生类对象的存…

基于springboot+vue+Mysql的体质测试数据分析及可视化设计

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

Windows11提示升级,我要点确定吗?

Windows 11自2021年10月推出以来&#xff0c;一直保持着缓慢而稳定的增长&#xff0c;相对来说在游戏PC上的影响力较大&#xff0c; 而Windows 10也即将于2025年10月结束支持。 截至2024年&#xff0c;Windows 11的主要版本包括24H2、 23H2、22H2和21H2。 24H2&#xff1a;20…

5月白银现货最新行情走势

美联储5月的议息会议举行在即&#xff0c;但从联邦公开市场委员会&#xff08;FOMC&#xff09;近期透露的信息来看&#xff0c;降息似乎并没有迫切性。——美联储理事鲍曼认为通胀存在"上行风险"&#xff0c;明尼阿波利斯联邦储备银行行长卡什卡利提出了今年不降息的…

数学:人工智能领域的基石与灵魂

在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到了我们生活的方方面面&#xff0c;从智能家居、智能医疗到自动驾驶、智能客服&#xff0c;AI无处不在。然而&#xff0c;当我们赞叹于AI的神奇时&#xff0c;却往往忽视了其背后的推动力——数学…

5月游戏市场迎来新的体验,网易两款游戏重磅出炉

易采游戏网5月9日消息&#xff0c;随着科技的飞速发展&#xff0c;手机游戏已经成为人们休闲娱乐的重要方式。在这个领域&#xff0c;网易作为国内领先的游戏开发商&#xff0c;一直致力于为玩家带来高品质的游戏体验。近日&#xff0c;网易携手国际大厂Square Enix&#xff0c…

列表、字典推导式介绍和用法|lambda的介绍和用法

列表、字典推导式介绍和用法|lambda的介绍和用法 列表推导式示例应用与传统写法代码行数直观比较 字典推导式示例应用 lambda示例应用 列表推导式、字典推导式、lambda使用简洁语法进行代码的编写 列表推导式 用于快速创建新的列表&#xff0c;通过对现有列表进行迭代和筛选。…

技术速递|Python in Visual Studio Code 2024年5月发布

排版&#xff1a;Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2024 年 5 月发布&#xff01; 此版本包括以下公告&#xff1a; “Implement all inherited abstract classes”代码操作新的自动缩进设置Debugpy 从 Python 扩展中删除&#…

vivado新版本兼容老版本,vitis classic兼容sdk教程

new version: vivado版本2023.2 和vitisv classic 2023.2 old version: vivado 2018.3以及之前的版本 打开工程 自动升级到当前版本&#xff0c;选择OK 点击Yes,合并当前的目录架构 点击OK 点击Report IP status 勾选要升级的IP核&#xff0c;点击升级 在项目工程文件夹…

Java医院绩效考核系统源码maven+Visual Studio Code一体化人力资源saas平台系统源码

Java医院绩效考核系统源码mavenVisual Studio Code一体化人力资源saas平台系统源码 医院绩效解决方案包括医院绩效管理&#xff08;BSC&#xff09;、综合奖金核算&#xff08;RBRVS&#xff09;&#xff0c;涵盖从绩效方案的咨询与定制、数据采集、绩效考核及反馈、绩效奖金核…

Hadoop | 数据清洗

# 数据清洗概念 通常情况下&#xff0c;大数据平台获得原始数据文件中&#xff0c;存在大量无效数据和缺失数据&#xff0c;需要再第一时间&#xff0c;对数据进行清洗&#xff0c;获得符合后续处理需求的数据内容和格式 # 需求 对手机流量原始数据&#xff0c;将其中的手机号…

《Decoupled Contrastive Learning for Long-Tailed Recognition》阅读笔记

论文标题 《Decoupled Contrastive Learning for Long-Tailed Recognition》 针对长尾识别的解耦对比学习 作者 Shiyu Xuan 和 Shiliang Zhang 来自北京大学计算机学院多媒体信息处理国家重点实验室 初读 摘要 监督对比损失&#xff08;Supervised Contrastive Loss, SC…

使用GitLab自带的CI/CD功能在远程服务器部署项目(三)

前置内容&#xff1a; 通过Docker Compose部署GitLab和GitLab Runner&#xff08;一&#xff09; 使用GitLab自带的CI/CD功能在本地部署项目&#xff08;二&#xff09; 目录 一、在GitLab服务器上生成私钥与公钥 二、将公钥拷贝到应用服务器上 三、将私钥给到Docker Exec…

论文阅读:The Unreasonable Ineffectiveness of the Deeper Layers 层剪枝与模型嫁接的“双生花”

作者实证研究了针对流行的开放式预训练 LLM 系列的简单层修剪策略&#xff0c;发现在不同的 QA 基准上&#xff0c;直到去掉一大部分&#xff08;最多一半&#xff09;层&#xff08;Transformer 架构&#xff09;后&#xff0c;性能的下降才会降到最低。为了修剪这些模型&…

车载电子电器架构 —— 应用软件开发(上)

车载电子电器架构 —— 应用软件开发(上) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

OAuth 2.0 和 OAuth 2.1

OAuth 2.0 和 OAuth 2.1比较&#xff1a; OAuth 2.0 和 OAuth 2.1 是授权框架的不同版本&#xff0c;它们用于允许应用程序安全地访问用户在另一个服务上的数据。以下是它们之间的一些主要区别&#xff1a; 安全性增强&#xff1a;OAuth 2.1 旨在提高安全性&#xff0c;它整合…

基于VOLOPV2的自动驾驶环境感知系统

基于VOLOPV2的自动驾驶环境感知系统是一个复杂的系统&#xff0c;它主要负责实时检测并识别周围环境中的各种物体和信息&#xff0c;为自动驾驶车辆提供必要的感知数据。以下是对该系统的一个简要介绍&#xff1a; 环境感知是自动驾驶系统中的一个关键部分&#xff0c;它依赖于…

关于Ardupilot的固定翼(plane)的控制

起因 由于项目原来是使用的四旋翼,并且是PX4版本的四旋翼; 如今需要对无人机固定翼进行控制,并要求使用Ardupilot的固件进行研究。 特定在此记录对固定翼的学习,以和大家分享观点和交流学习。 PX4和Ardupilot关系 PX4和Ardupilot都是固件,固件就是软件的意思。两者都是…