内容简介:打开在我们都知道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窃取宝塔面板管理员漏洞高危
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Probability and Computing
Michael Mitzenmacher、Eli Upfal / Cambridge University Press / 2005-01-31 / USD 66.00
Assuming only an elementary background in discrete mathematics, this textbook is an excellent introduction to the probabilistic techniques and paradigms used in the development of probabilistic algori......一起来看看 《Probability and Computing》 这本书的介绍吧!