Apache Shiro 权限绕过漏洞CVE-2020-13933的示例分析

发布时间:2021-12-27 18:55:31 作者:柒染
来源:亿速云 阅读:812

这篇文章给大家介绍Apache Shiro 权限绕过漏洞CVE-2020-13933的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、漏洞分析

1.1 Apache Shiro组件介绍

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件等。

1.2 漏洞描述

Apache Shiro的CVE-2020-11989修补补丁依旧存在缺陷,由于shiro和spring在处理url中仍然存在差别,通过构造特殊的HTTP请求,可以再次绕过授权,访问未授权的信息。

1.3 漏洞分析

使用Apache Shiro 1.5.3进行分析,首先通过补丁对比,比较1.6.0版本和1.5.3版本,可以发现最新版本添加了一个InvalidRequestFilter类,该类从全局上对分号,反斜杠和非ASCII字符进行了过滤。

Apache Shiro 权限绕过漏洞CVE-2020-13933的示例分析

根据漏洞的描述信息,可以发现该漏洞主要由于是shiro和spring对url的处理存在差别,所以直接去查看它们的区别。断点到shiro对URL的处理方法getPathWithinApplication如下:

Apache Shiro 权限绕过漏洞CVE-2020-13933的示例分析

首先获取到解码后的url,接着取出其中的路径,最后返回分号之前的路径。其中removeSemicolon函数如下:

Apache Shiro 权限绕过漏洞CVE-2020-13933的示例分析

后面对处理之后的url去除掉最后的/,并进行匹配,这里面只需要设置授权匹配时使用单*的弱匹配,并传入的构造的payload就可以使其匹配不上。

Apache Shiro 权限绕过漏洞CVE-2020-13933的示例分析

Apache Shiro 权限绕过漏洞CVE-2020-13933的示例分析

再看一下spring对url的处理,使用getRequestURI方法,首先获取原始url,然后直接进行分号的去除。

至此,就可以比较出shiro和spring的区别,并构造出payload绕过授权。

1.4 漏洞复现

搭建Apache Shiro 1.5.3漏洞环境,使用构造的payload进行攻击,最终绕过授权访问到未授权资源,效果如图:

Apache Shiro 权限绕过漏洞CVE-2020-13933的示例分析

二、影响范围

目前受影响的Apache Shiro版本:Apache Shiro < 1.6.0

三、解决方案

3.1修复建议

Apache Shiro最新版本已经修复此漏洞,请受漏洞影响的用户下载最新版本,下载链接:http://shiro.apache.org/download.html

3.2 临时解决方案

使用shiro授权时尽量避免使用单*的ant匹配。可以尝试将下图中的匹配方式更改为map.put(“hello/**”, “authc”)

关于Apache Shiro 权限绕过漏洞CVE-2020-13933的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. Apache shiro框架怎么用
  2. Apache Shrio安全框架实现原理及实例详解

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

shiro

上一篇:WebLogic coherence UniversalExtractor 反序列化的漏洞分析是怎样的

下一篇:MySQL多实例的配置应用实例场景是怎样的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》