Tomcat 远程代码执行 CVE-2019-0232漏洞复现

ApacheTomcatCVE-2019-0232远程代码执行漏洞分析与修复
文章详细描述了ApacheTomcat的一个高危漏洞CVE-2019-0232,该漏洞允许远程攻击者通过启用enableCmdLineArguments的CGIServlet执行任意命令,影响广泛。作者提供了漏洞复现的步骤和修复建议,包括禁用特定参数、加强参数验证和升级Tomcat版本。

漏洞简介
2019年4月10日,Apache Tomcat披露了一个漏洞,漏洞编号为CVE-2019-0232,该漏洞存在于启用了enableCmdLineArguments选项的CGI Servlet中,与JRE向Windows传递参数过程中的bug有关。成功利用此漏洞可允许远程攻击者在目标服务器上执行任意命令,从而导致服务器被完全控制。由于Apache Tomcat应用范围广泛,该漏洞一旦被大规模利用,带来后果将不堪设想。

威胁类型
远程代码执行、提权;

威胁等级

漏洞编号
CVE-2019-0232

受影响系统及应用版本
Apache Tomcat 9.0.0.M1 to 9.0.17

Apache Tomcat 8.5.0 to 8.5.39

Apache Tomcat 7.0.0 to 7.0.93

漏洞复现


1、搭建环境
VMware 虚拟机 windows 7
JDK 1.8.0_73
Apache tomcat 9.0.13

2、复现步骤
首先安装JDK(我这里用的jdk_1.8.0_241)然后配置环境变量
下载符合版本的Tomcat安装包 传送门
下载JDK,准备配置环境

在这里插入图片描述

1:安装jdk 随意选择目录,如果没有特殊要求直接默认完成安装即可
2:安装jre→更改→ \java 之前目录和安装 jdk 目录相同即可
3:安装完JDK后配置环境变量 计算机→属性→高级系统设置→高级→环境变量

在这里插入图片描述

4、系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录

在这里插入图片描述

我的路径是C:\Program Files\Java\jdk1.8.0_241

5、系统变量→寻找 Path 变量→编辑
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

在这里插入图片描述

6、系统变量→新建 CLASSPATH 变量
变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

在这里插入图片描述

7、检验是否配置成功 运行cmd 输入 java -version若如图所示 显示版本信息 则说明安装和配置成功。

在这里插入图片描述

8、在上述网址中下载Tomcat,下载好安装包之后,进入bin目录执行startup.bat启动tomcat。

在这里插入图片描述

在这里插入图片描述

9、访问http://localhost:8080

在这里插入图片描述

10、修改配置文件
首先修改apache-tomcat-9.0.13\conf\ web.xml
(1)将此段注释删除,并添加红框内代码。

        <init-param>
          <param-name>enableCmdLineArguments</param-name>
          <param-value>true</param-value>
        </init-param>
        <init-param>
          <param-name>executadle</param-name>
          <param-value></param-value>
        </init-param>

这里可以Ctrl+F搜以下关键词,可以更快定位到代码位置

在这里插入图片描述

(2)将此处注释删除

在这里插入图片描述

11、更改

apache-tomcat-9.0.13\conf\ context.xml

添加privileged="true"语句 如下图

在这里插入图片描述

环境搭建完成!

12、在apache-tomcat-9.0.13\webapps\ROOT\WEB-INF目录下
 

新建 cgi-bin 文件夹
在文件夹内创建一个.bat文件

在这里插入图片描述

在这里插入图片描述

Bat文件内写如下内容

在这里插入图片描述

@echo off
echo Content-Type: test/plain
echo.
set foo=&~1
%foo%

在这里插入图片描述

14、在后边追加系统命令:
此命令为调出计算机

在这里插入图片描述

漏洞复现成功!

2、修复建议
(1).禁用enableCmdLineArguments参数。
(2).在conf/web.xml中覆写采用更严格的参数合法性检验规则。
(3).升级tomcat到9.0.17以上版本。
————————————————
版权声明:本文为CSDN博主「whh6tl」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liuyan76/article/details/107581701

### 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]. 注意:以上仅为理论分析指导用途,请勿非法入侵任何网络资产! --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值