CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl

漏洞简介:

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安装包    传送门图片[1]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

下载JDK,准备配置环境

  •  1、装jdk 随意选择目录,如果没有特殊要求直接默认完成安装即可
  •  2、安装jre→更改→ \java 之前目录和安装 jdk 目录相同即可
  •  3、安装完JDK后配置环境变量  计算机→属性→高级系统设置→高级→环境变量
    图片[2]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科
  • 4、系统变量→新建 JAVA_HOME 变量 。

 变量值填写jdk的安装目录图片[3]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

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

  • 5、系统变量→寻找 Path 变量→编辑

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;图片[4]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

  • 6、系统变量→新建 CLASSPATH 变量

变量值填写  .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar图片[5]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

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

图片[6]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

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

图片[7]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

图片[8]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

  • 9、访问http://localhost:8080

图片[9]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

  • 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>

图片[10]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

(2)将此处注释删除

图片[11]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

  • 11、然后更改 apache-tomcat-9.0.13\conf\ context.xml

<Context>添加privileged=”true”语句 如下图图片[12]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

环境搭建完成!

  • 12、在apache-tomcat-9.0.13\webapps\ROOT\WEB-INF目录下新建  cgi-bin  文件夹

在文件夹内创建一个.bat文件图片[13]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

图片[14]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

Bat文件内写如下内容

图片[15]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

@echo off

echo Content-Type: test/plain
echo. set foo=&~1 %foo%
  • 13、直接浏览器访问对应的cgi-bin下的bat文件(默认会将bat文件下载回来)

图片[16]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

  • 14、在后边追加系统命令:

此命令为调出计算机图片[17]-CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现 – 作者:whhbtl-安全小百科

漏洞复现成功!

2、修复建议

禁用enableCmdLineArguments参数。

在conf/web.xml中覆写采用更严格的参数合法性检验规则。

升级tomcat到9.0.17以上版本。

来源:freebuf.com 2020-07-25 18:44:57 by: whhbtl

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论