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 天前
DVWA从入门到精通(十七):Open HTTP Redirect(开放重定向)
web安全·dvwa·开放重定向
txg6661 天前
网络安全领域简报(2026年7月3日—10日)
安全·web安全·网络安全
Chengbei111 天前
SoloXSS:一款现代化的自托管 XSS平台
人工智能·安全·web安全·网络安全·自动化·xss·安全架构
2301_780303902 天前
网络安全、自动化运维、ERP、CRM、MES
运维·web安全·网络安全·自动化·安全威胁分析
技术不好的崎鸣同学2 天前
[GXYCTF2019]Ping Ping Ping 思路及解法
网络·安全·web安全
dehuisun2 天前
等保2.0实施方案
web安全
treesforest2 天前
高精度IP定位怎么选?从企业需求出发的选型指南
网络·数据库·tcp/ip·web安全·ip·高精度ip查询
doiito(Do It Together)2 天前
【Web安全,微服务安全】HashiCorp Vault 项目深度分析报告
web安全·微服务·安全架构
hengmeida2 天前
KNX Secure 全解析:智能楼宇如何守住网络安全底线?
网络·web安全·智能路由器
2601_962851742 天前
计算机毕业设计之基于SSM的网络安全课程资源分享平台
vue.js·算法·安全·web安全·yolo·目标检测·课程设计