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 请求进行过滤和检测,防止恶意请求的攻击。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 09:38:07       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 09:38:07       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 09:38:07       87 阅读
  4. Python语言-面向对象

    2024-05-11 09:38:07       96 阅读

热门阅读

  1. 大小写绕过与双写绕过

    2024-05-11 09:38:07       29 阅读
  2. 项目ElasticSearch 7.5 安装配置

    2024-05-11 09:38:07       32 阅读
  3. C++处理栅格数据

    2024-05-11 09:38:07       94 阅读
  4. 【linux软件基础知识】Linux 中的实时进程

    2024-05-11 09:38:07       34 阅读
  5. linux 基础命令使用

    2024-05-11 09:38:07       35 阅读
  6. STL——常用算法

    2024-05-11 09:38:07       38 阅读
  7. html的i标签 “\e905“ font-family 字体没有效果

    2024-05-11 09:38:07       34 阅读