内容简介:打开在我们都知道Jsp和servlet都需要web容器才能运行,但是实际上呢我们的web应用中可以没有任何servlet或者jsp(至少表面上是这样的)只需要一个web.xml。我们可以通过链接来访问应用内的资源文件。例如.jpg,.html,.js这类的静态文件。这就是DefaultServlet的作用了。
一、 如何找到对应补丁
打开 Tomcat官网版本7首页 ,可以看到 Fixed in Apache Tomcat 7.0.91
中修复了该漏洞。 由于 fixed 页面不能打开,所以我们只能在官方github的commit中查看相关代码。 于是找到了 漏洞补丁 通过观察可以看到代码仅修改了 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中有定义 DefaultServlet
的 Servlet-Mapping
设置为 /
,即处理一切请求, load-on-startup
设置为1,即自启动。所以当tomcat容器启动时访问静态资源即可进入到 DefaultServlet
方法中。
三、漏洞利用
通过漏洞补丁及 DefaultServlet
描述,我们可以知道如果请求为 //zhutougg.com
时,tomcat容器即会发生跳转。但是前题条件是WEB应用中存在一个名为 zhutougg.com
的文件夹
四、漏洞修复
漏洞影响版本为
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
修复方案:
- 更新Tomcat容器版本至最新版本
- WEB应用了自定义servlet,配置servlet-mapping为/。使其覆盖defaultServlet
以上所述就是小编给大家介绍的《CVE-2018-11784 Tomcat URL跳转漏洞》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 如何做好漏洞管理的漏洞修复工作
- 漏洞预警 | ThinkPHP5远程命令执行漏洞
- 漏洞预警 | MetInfo最新版本爆出SQL注入漏洞
- 通过关键字获取漏洞平台最新漏洞信息
- [浏览器安全漏洞一] dll劫持漏洞
- 宝塔漏洞 XSS窃取宝塔面板管理员漏洞高危
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Apache Tomcat 6高级编程
Vivek Chopra、Sing Li、Jeff Genender / 人民邮电出版社 / 2009-3 / 79.00元
《Apache Tomcat 6高级编程》全面介绍了安装、配置和运行Apache Tomcat服务器的知识。书中不仅提供了配置选项的逐行分析,还探究了Tomcat的特性和功能,可以帮助读者解决出现在系统管理的各个阶段的各种问题,包括共享主机、安全、系统测试和性能测试及调优。 《Apache Tomcat 6高级编程》重点讲解Tomcat 6的应用知识。从基本的Tomcat和Web应用程序配置......一起来看看 《Apache Tomcat 6高级编程》 这本书的介绍吧!