Apache Shiro 漏洞汇总
2023-02-18 16:29:33 时间
Apache Shiro 漏洞汇总
以下是本人收集起来的一些Apache Shiro漏洞信息,这些漏洞的poc都是公开的,利用起来也是比较简单
Apache Shiro是什么:
Apache Shiro是美国阿帕奇(Apache)软件基金会的一套用于执行认证、授权、加密和会话管理的Java安全框架
漏洞信息
shiro 反序列化(cve_2016_4437) | Apache Shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值 > Base64解码–>AES解密–>反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。 |
shiro 权限绕过(cve_2020_1957) | Shiro框架通过拦截器功能来对用户访问权限进行控制,如anon, authc等拦截器。anon为匿名拦截器,不需要登录即可访问;authc为登录拦截器,需要登录才可以访问。主要是Spring web在匹配url的时候没有匹配上/导致绕过 |
shiro 权限绕过(cve_2020_11989) | 将Apache Shiro与Spring控制器一起使用时,特制请求可能会导致身份验证绕过。 |
shiro 代码执行(shiro721) |
Shiro框架直观、易用,同时也能提供健壮的安全性 Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞 |
shiro 身份验证绕过(cve_2020_13933) | 之前Apache Shiro身份验证绕过漏洞CVE-2020-11989的修复补丁存在缺陷,在1.5.3及其之前的版本,由于shiro在处理url时与spring仍然存在差异,依然存在身份校验绕过漏洞由于处理身份验证请求时出错,远程攻击者可以发送特制的HTTP请求,绕过身份验证过程并获得对应用程序的未授权访问。 |
漏洞版本
shiro 反序列化(cve_2016_4437) | Apache Shiro <= 1.2.4 |
shiro 权限绕过(cve_2020_1957) | Apache Shiro < 1.5.2 |
shiro 权限绕过(cve_2020_11989) |
Apache Shiro < 1.5.3,Spring框架中只使用了Shiro鉴权 |
shiro 代码执行(shiro721) | Apache Shiro <= 1.4.1 |
shiro 身份验证绕过(cve_2020_13933) | Apache Shiro < 1.6.0 |
漏洞特征:
shiro 反序列化(cve_2016_4437) | Set-Cookic、header="rememberme=deleteMe"、header="shiroCookie" |
shiro 权限绕过(cve_2020_1957) | /a/b--->/a/b/ 或 /a/b;/c--->/a/b/c 绕过 |
shiro 权限绕过(cve_2020_11989) | /admin/page--->/;/admin/page,绕过 |
shiro 代码执行(shiro721) | 需要一个合法的登录账号,获取一个有效的rememberMe cookie,并记录下这个rememberMe的值。使用rememberMe值作为prefix,加载Payload,进行Padding Oracle攻击。 |
shiro 身份验证绕过(cve_2020_13933) | /admin/page--->/admin/%3bpage 绕过 %3b=; |
相关文章
- [MySQL] in 子查询出现DEPENDENT SUBQUERY问题
- [MySQL] group by 聚合函数的原理和聚合限制原因SELECT list is not in GROUP BY clause and contains nonaggregated column
- [MySQL]mysql的ANY_VALUE()函数 解决 ONLY_FULL_GROUP_BY 模式
- [日常]windows下kill进程工具taskkill
- [CSS] 纯CSS的前端图标icon库并且修改大小和颜色
- [PHP] php中的索引数组和数组顺序问题
- [日常] 修改编辑word中的页眉页脚
- [nginx]配置nginx支持websocket解决返回400错误问题
- [nginx]配置nginx支持websocket解决返回400错误问题
- [PHP] php5.3之前-php5.3-php7垃圾回收机制的进化
- [PHP] include语句的注意事项
- [TCP] tcp连接SYN超时重传次数和超时时间
- [PHP]正则表达式\w和\W区别
- [HTTP]解决406 not acceptable 错误
- [Nginx] nginx配置域名反代后端端口
- [PHP] 使用适配器模式处理数据库对象
- [PHP]使用策略模式消除if else
- [PHP] 解释FastCGI与PHP-FPM的关系
- [PHP]PHP请求在PHP-FPM下的生命周期
- [PHP]解决500错误问题-nginx以及fpm没有任何错误日志