今天就跟大家聊聊有关如何实现Apache Tomcat 远程代码执行漏洞CVE-2019-0232的复现,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
漏洞简介:
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>
(2)将此处注释删除
-
11、然后更改 apache-tomcat-9.0.13/conf/ context.xml
<Context>添加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%
-
13、直接浏览器访问对应的cgi-bin下的bat文件(默认会将bat文件下载回来)
-
14、在后边追加系统命令:
此命令为调出计算机
漏洞复现成功!
2、修复建议
禁用enableCmdLineArguments参数。
在conf/web.xml中覆写采用更严格的参数合法性检验规则。
升级tomcat到9.0.17以上版本。
看完上述内容,你们对如何实现Apache Tomcat 远程代码执行漏洞CVE-2019-0232的复现有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/221488.html