还记得在十月份凯哥发布过一篇修改若依系统编辑器的文章,然后为了方便大家浏览,凯哥就部署在服务器上了,结果,没想到最近收到了阿里云漏洞扫描通知:
如果不修改的话:对于长期存在安全隐患但未整改的网络资源,监管部门可能会下达行政处罚
根据扫描结果,搜索了下漏洞的证明(如下图):在项目中搜索,我去,还真是啊。
漏洞描述
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。
漏洞造成的影响
在配置了默认密钥的情况下,攻击者可以通过精心构造的 Payload 实现远程命令执行,从而进一步获取服务器权限。
安全建议
升级shiro至最新版本1.7.0并生成新的密钥替换,注意妥善保管密钥,防止泄漏。
利用官方提供的方法生成密钥:org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(),换key修复指南:
于是急忙的修改了shiro的版本号,重新生成了密钥生成规则。
解决方案
后面通过源码分析,发现了shiro有自己的随机生成秘钥的方法。既然找到的方法,那就好说了,按照源码的方式新写一个秘钥生成器:
public class GenerateCipherKey {
/**
* 随机生成秘钥,参考org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(int)
* @return
*/
public static byte[] generateNewKey() {
KeyGenerator kg;
try {
kg = KeyGenerator.getInstance("AES");
} catch (NoSuchAlgorithmException var5) {
//这里的msg可以任意随机输入
String msg = "kaigejavaXXnnOOdd";
throw new IllegalStateException(msg, var5);
}
kg.init(128);
SecretKey key = kg.generateKey();
byte[] encoded = key.getEncoded();
return encoded;
}
}
对于传统的xml配置项目修改方案:
在shiro的配置文件中,引入key的方法:
其中图中箭头的位置是自己项目类全路径的包名。
对于spring boot项目修改方案:
同样是修改shiro的配置文件,只是spring boot的方式不同了,使用的是就java 类的方式。修改如下:
项目已经重新部署了,可以访问了。同时已经提交到码云上了,欢迎之前下载的朋友更新。
获取最新项目源码及shiro漏洞报告==>
相关推荐
shiro漏洞检测工具,找了一个18M左右的不好用,经验证这个好用,不会报找不到类错误。
此项目是一个简单的springboot+shiro项目,旨在重现CVE-2020-13933 shiro漏洞.zip此项目是一个简单的springboot+shiro项目,旨在重现CVE-2020-13933 shiro漏洞.zip此项目是一个简单的springboot+shiro项目,旨在重现...
1.shiro反序列化漏洞、暴力破解漏洞检测工具源码 2.shiro反序列化漏洞、暴力破解漏洞检测工具jar包 3.shiro反序列化漏洞、暴力破解漏洞检测工具启动方法 4.shiro反序列化漏洞、暴力破解漏洞检测工具使用方法 5.shiro...
当这些操作不受限制时,恶意用户可以利用此漏洞,发送特制的序列化数据包,使得 Shiro 在反序列化过程中执行恶意代码。J1anfen 创建的 "shiro_attack_by J1anfen" 工具就是为了检测和验证这种漏洞的存在。 该工具...
shiro使用的版本是1.2.4,存在反序列化漏洞,我们采取的办法是手动升级到了1.2.6版本,但苦于无法验证是否解决了问题,后来发现了一款测试工具,ShiroExploit。 测试工具下载地址 ... 反序列化漏洞是如何产生的?...
9. **shiro-all-1.7.1.jar**: 包含了Shiro的所有模块,如果你希望在一个项目中使用Shiro的所有功能,可以直接引入这个包,而无需单独导入每个模块。 10. **shiro-jaxrs-1.7.1.jar**: 提供了对JAX-RS(Java API for ...
高版本AES-GCM模式加密的Shiro漏洞利用1是指在Shiro框架中,使用高版本AES-GCM模式加密时出现的漏洞利用问题。Shiro框架在高版本中更换了加密算法,从AES-CBC换成了AES-GCM,这导致了之前的exp不能用于新版Shiro的...
在Shiro的早期版本中,尤其是1.2.4及以下版本,存在一个严重的反序列化漏洞,这个漏洞可能导致远程代码执行(RCE)的风险,攻击者可以利用这个漏洞对目标系统进行非法操作。 反序列化漏洞通常出现在应用程序接收到...
权限管理Shiro系统-Apache开源顶级项目shiro-SpringMVC_Shiro项目
图形化界面,该工具支持漏洞检测,请勿用作非法途径,否则后果自负。 Shiro550无需提供rememberMe Cookie,Shiro721需要提供一个有效的rememberMe Cookie 可以手工指定特定的 Key/Gadget/EchoType(支持多选),如果...
shiro远程命令执行漏洞检测工具:包括了shiro_attack_2.2和ShiroExploit.V2.51,大家可根据需要自行下载
这个基于Shiro的项目旨在简化IT项目中的权限管理任务,帮助开发者快速构建安全的系统。 1. **Shiro的身份验证**:Shiro提供了一种简单的方式来验证用户身份。它可以处理用户名/密码的输入,与数据库或其他身份存储...
shiro-core 低版本漏洞检测工具
然而,在Apache Shiro 1.2.4及其更早的版本中,存在一个严重的反序列化漏洞。这个漏洞主要与RememberMe服务的实现有关。在处理RememberMe的Cookie时,Shiro的`CookieRememberMeManager`类会执行一系列操作:首先,它...
在网络安全领域,Shiro的反序列化漏洞是一个常见的安全问题,攻击者可能利用这个漏洞执行恶意代码,对系统造成严重威胁。 该压缩包文件包含的`shiro_tool.jar`很可能是一个专门用于检测Apache Shiro反序列化漏洞的...
在本文中,我们将深入探讨 Shiro 的授权机制,以及如何在实际的企业项目中与之整合,实现自定义 Realm,缓存管理和验证码与“记住我”功能。 ### 一、Shiro 授权机制 Shiro 的授权(Authorization)主要负责确定...
在Spring Shiro项目中,我们可以利用Shiro的SessionManager和SessionDAO,将用户的会话状态保存在数据库中,从而实现多个应用服务器间的会话同步。 5. **DB控制地址拦截** 项目中提到的"可以通过DB控制地址拦截...
在项目中,开发者可以通过阅读文档和源代码,了解SSM和Shiro的集成过程,学习如何配置它们的bean、编写Controller、Service以及DAO,同时掌握Shiro的配置文件(如shiro.ini或shiro.xml)和相关注解的使用方法。...
### 在Web项目中应用Shiro #### 一、Shiro简介与重要性 Apache Shiro是一个强大且易用的Java安全框架,它提供了身份验证、授权、加密和会话管理功能,可以非常容易地开发出足够安全的应用。本文旨在详细介绍如何在...
接下来,我们将详细讨论SpringMVC和Shiro的相关知识点,以及如何在实际项目中结合使用它们。 **SpringMVC** SpringMVC是Spring框架的一部分,它是用于构建Java Web应用程序的模型-视图-控制器(MVC)框架。...