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

相关推荐
花木偶6 小时前
【郑大二年级信安小学期】Day6:CTF密码学&杂项&工具包
安全·web安全·密码学
黑客老李14 小时前
EDUSRC:智慧校园通用漏洞挖掘(涉校园解决方案商)
服务器·前端·网络·安全·web安全
薄荷椰果抹茶15 小时前
【网络安全基础】第七章---无线网络安全
网络·安全·web安全
weixin_4723394615 小时前
网络安全之重放攻击:原理、危害与防御之道
安全·web安全
咖啡啡不加糖15 小时前
暴力破解漏洞与命令执行漏洞
java·后端·web安全
weixin_4723394615 小时前
网络安全之注入攻击:原理、危害与防御之道
安全·web安全
安全系统学习15 小时前
网络安全之漏洞学习
前端·安全·web安全·网络安全·xss
码农12138号21 小时前
BUUCTF在线评测-练习场-WebCTF习题[GXYCTF2019]BabyUpload1-flag获取、解析
web安全·网络安全·文件上传漏洞·buuctf·解析漏洞
薄荷椰果抹茶2 天前
【网络安全基础】第六章---Web安全需求
安全·web安全
HumanRisk2 天前
降低网络安全中的人为风险:以人为本的路径
网络·安全·web安全