0x00 前言
此篇作为shiro总结篇,用于查漏补缺。
利用工具推荐:https://github.com/j1anFen/shiro_attack
0x01 反序列化
1.shiro 124
shiro 124,因为AES加密秘钥硬编码导致反序列化漏洞,124修复
2.shiro 142
shiro 142以下版本,由于使用了AES CBC的问题,导致存在 Padding Oracle Attack 问题,在142版本使用AES-GCM
参考:一文搞明白 Padding Oracle Attack
0x02 逻辑漏洞
1.shiro CVE-2020-1957
影响版本:shiro < 1.5.2
影响原因:Spring和Shiro解析差异 /
以及/xx/..;
2.shiro CVE-2020-13933
影响版本:Apache Shiro < 1.6.0
影响原因:CVE-2020-1957绕过 %3b
3. shiro CVE-2021-41303
影响版本: shiro <1.8.0
影响原因:配置不当,导致出现问题,鸡肋漏洞知道即可。
4. shiro CVE-2022-32532
影响版本:shiro<1.9.1
影响原因:正则默认匹配内容不完整
补充知识
shiro 介绍
Shiro(全称Apache Shiro)是一个开源的Java安全框架,提供身份验证,授权,加密和会话管理等安全功能。它的目标是使安全性变得简单,并且易于集成到新项目中。Shiro使用简单的API,可用于任何应用程序 - 从最小的移动应用程序到最大的Web和企业应用程序。Shiro不需要依赖其他框架,因此可以轻松集成到任何Java应用程序中。
shiro的优势
-
安全性:Shiro是一个非常安全的框架,它提供了许多机制来保护应用程序不受攻击和滥用。
-
灵活性:Shiro是一个非常灵活的框架,它可以轻松地集成到任何Java应用程序中。它提供了许多定制选项,您可以根据需要定制这些选项。
-
易于使用:Shiro是一个非常易于使用的框架,它提供了许多简单易用的API,您可以轻松地开始使用这些API。
-
社区支持:Shiro是一个非常受欢迎的框架,在Java社区中有许多开发人员使用它,并提供了广泛的支持和文档。
-
集成性:Shiro提供了与许多其他框架和技术(如Spring和Hibernate)的集成,使它成为一个非常强大的安全解决方案。
shiro的缺点
Shiro框架的缺点主要包括以下几个方面:
-
框架过于庞大:Shiro框架拥有很多功能,但是有时候用户可能仅仅需要其中的一部分功能,却不得不引用整个框架,这就造成了一定的资源浪费。
-
缺乏完善的文档:相对于其他框架而言,Shiro框架的文档相对较少,不够完善详细,这给初学者造成了一定的困难。
-
限制了部分自由度:Shiro框架的一些功能虽然非常强大,但是在某些情况下也会限制用户的一定自由度,影响了用户的自主选择。
-
不够灵活:Shiro框架的一些默认设置可能会影响用户对自己应用程序的控制,不够灵活,无法满足某些特殊需求。
-
并发问题:在高并发的情况下,Shiro框架的某些功能可能会出现一些问题,需要进行优化处理。
shiro的使用场景
Shiro框架是一个功能强大的Java安全框架,可以用于安全认证、授权、会话管理和密码加密等方面。其主要使用场景包括:
-
Web应用程序的安全管理:可以为Web应用程序提供身份认证和访问控制功能,包括基于URL的授权、基于角色的访问控制和基于会话的控制等。
-
基于RESTful服务的安全管理:可以为基于RESTful服务的应用程序提供身份认证和授权功能。
-
消息队列的安全管理:可以为消息队列提供访问控制和消息加密功能,保护消息的机密性和完整性。
-
单点登录的实现:可以通过集成第三方认证服务实现单点登录功能,提高用户体验和安全性。
-
桌面应用程序的安全管理:可以为桌面应用程序提供身份认证和授权功能,保护应用程序的机密信息。
总之,Shiro框架是一个非常通用的安全框架,可以在各种应用场景中使用。