CVE-2018-11784 Tomcat URL跳转漏洞

一、 如何找到对应补丁

打开 Tomcat官网版本7首页 ,可以看到 Fixed in Apache Tomcat 7.0.91 中修复了该漏洞CVE-2018-11784 Tomcat URL跳转漏洞 由于 fixed 页面不能打开,所以我们只能在官方github的commit中查看相关代码CVE-2018-11784 Tomcat URL跳转漏洞 于是找到了 漏洞补丁 CVE-2018-11784 Tomcat URL跳转漏洞 通过观察可以看到代码仅修改了 java/org/apache/catalina/servlets/DefaultServlet.java

private void doDirectoryRedirect(HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        StringBuilder location = new StringBuilder(request.getRequestURI());
        location.append('/');
        if (request.getQueryString() != null) {
            location.append('?');
            location.append(request.getQueryString());
        }
        // Avoid protocol relative redirects
        while (location.length() > 1 && location.charAt(1) == '/') {
            location.deleteCharAt(0);
        }
        response.sendRedirect(response.encodeRedirectURL(location.toString()));
    }

doDirectoryRedirect 方法中获取URI并在URI后面添加 / 进行跳转。

二、DefaultServlet说明

我们都知道Jsp和servlet都需要web容器才能运行,但是实际上呢我们的web应用中可以没有任何servlet或者jsp(至少表面上是这样的)只需要一个web.xml。我们可以通过链接来访问应用内的资源文件。例如.jpg,.html,.js这类的静态文件。这就是DefaultServlet的作用了。

在tomat的安装目录下的conf/web.xml中有定义 CVE-2018-11784 Tomcat URL跳转漏洞 CVE-2018-11784 Tomcat URL跳转漏洞 DefaultServletServlet-Mapping 设置为 / ,即处理一切请求, load-on-startup 设置为1,即自启动。所以当tomcat容器启动时访问静态资源即可进入到 DefaultServlet 方法中。

三、漏洞利用

通过漏洞补丁及 DefaultServlet 描述,我们可以知道如果请求为 //zhutougg.com 时,tomcat容器即会发生跳转。但是前题条件是WEB应用中存在一个名为 zhutougg.com 的文件夹 CVE-2018-11784 Tomcat URL跳转漏洞

四、漏洞修复

漏洞影响版本为

Apache Tomcat 9.0.0.M1到9.0.11

Apache Tomcat 8.5.0到8.5.33

Apache Tomcat 7.0.23到7.0.90

修复方案:

  1. 更新Tomcat容器版本至最新版本
  2. WEB应用了自定义servlet,配置servlet-mapping为/。使其覆盖defaultServlet

原文 

http://www.zhutougg.com/2018/10/08/cve-2018-11784-tomcat-urltiao-zhuan-lou-dong/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » CVE-2018-11784 Tomcat URL跳转漏洞

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址