怎样实现Apache Tomcat安全绕过漏洞复现


这篇文章给大家介绍怎样实现Apache Tomcat安全绕过漏洞复现,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。千里百科Apache Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。Tomcat 很受广大程序员的喜欢,免费云主机域名因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能。漏洞描述此次Apache Tomcat的安全绕过漏洞出现在Tomcat的部分版本中。Apache Tomcat Servlet 注释定义的安全约束,仅在Servlet加载后才应用。由于以这种方式定义的安全约束适用于URL模式及该点下任何URL,因此可能根据Servlet的加载顺序而对某些安全约束不适用。攻击者能够利用这个漏洞,绕过某些安全限制来执行未经授权的操作,以达到攻击的目的。漏洞复现上面描述的可能过于专业化,我们准备了一个案例让各位小伙伴们直观的了解一下。由于触发此漏洞的前提是:业务系统部署在低版本的Tomcat中。业务系统通过注解的方式定义安全约束。据此搭建一套JDK1.8,Apache Tomcat 8.5.24的运行环境。

新建一个Web工程,导入annotations-api.jar(annotations-api.jar是使用注解所需jar包,不导入会报错)等jar包文件。
由于ServletSecurity注释可以直接用来修饰Java Servlet,对Servlet进行类ACL保护,如果在ServletSecurity中添加ServletSecurity注释,在servlet_two中不添加ServletSecurity注释,就可能导致未授权访问,新建servlet_one.java和servlet_two.java文件,代码如下:

通过上面俩文件比较可以清晰地看出,servlet_one前增加了ServletSecurity注释,而servlet_two前没有ServletSecurity注释。修改web.xml文件如下(在web.xml对servlet给出名称和定制的URL。用servlet元素分配名称,使用servlet-mapping元素将定制的URL与刚分配的名称相关联。)

这里可以明显的看出有两个servlet(servlet_one和servlet_two),servlet_one的访问路径是“/servlet1/”,servlet_two的访问路径是“/servlet1/servlet2”,由于存在漏洞的版本根据Servlet的加载顺序而对某些安全约束不适用,在没有访问/servlet1/的前提下直接访问/servlet1/servlet2,使得servlet1的ServletSecurity注解没有生效,并没有保护到“/servlet1/servlet2”路径,可能导致一些资源外泄的风险。
这个时候直接访问servlet_one的访问路径“/servlet1/”,此时ServletSecurity注解生效,拒绝访问此资源。

在不重启Tomcat的情况下,访问一次servlet_one的访问路径“/servlet1/”后再次访问servlet_two的访问路径“/servlet1/servlet2”时,ServletSecurity注解已经触发,所以无法再次访问servlet_two资源,会提示拒绝访问此资源。(此方法可以作为临时防御方法,但是不建议使用此方法,应尽快升级)
影响版本修复建议由于在不了解对方网站架构的情况下,很容易先触发网站的安全约束,所以此漏洞利用条件困难,不过也建议小伙伴们及时更新到Apache Tomcat 8.5.28,Apache Tomcat 8.0.50,Apache Tomcat 7.0.85版本。关于怎样实现Apache Tomcat安全绕过漏洞复现就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

相关推荐: Karma、Jasager与WiFiPineApple之间的关系

WiFiPineApple之所以从无数蜜罐中脱颖而出离不开其中的Karma技术,那Karma又是什么呢?另外Jasager又是什么?这篇文章我们一起来认识一下:这里引用官网的介绍:http://wirelessdefence.org/Contents/KARM…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/04 10:45
下一篇 02/04 10:45