赞
踩
Apache Shiro 是ASF旗下的一款开源软件,它提供了一个强大而灵活的安全框架,提供身份验证、授权、密码学和会话管理。在Apache Shiro部分旧版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中,攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。
远程代码执行
只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都会导致反序列化漏洞。
(1)、升级shiro至最新版本1.7.0并生成新的密钥替换。
(2)、使用官方秘钥生成方法:org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey()
(3)、验证方法:Apache Shiro 默认密钥致命令执行漏洞验证工具
备注:若在配置里配置了默认密钥,则立即修改,并妥善保管该密钥。
针对此次shiro版本升级过程中主要分为jar包升级和修复RemberMe功能,如果网站在登录过程中设置了RemberMe的相关功能,需要针对秘钥生成方式和秘钥进行修改,如未使用到RemberMe的相关功能,则只需要更新项目的相关jar包即可
<!--shiro核心包--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.7.0</version> </dependency> <!--shiro整合web--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <version>1.7.0</version> </dependency> <!--shiro整合Spring--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.7.0</version> </dependency> <!--升级shiro1.2.4及以上版本 需要单独引入encoder--> <dependency> <groupId>org.owasp.encoder</groupId> <artifactId>encoder</artifactId> <version>1.2.3</version> </dependency>
因项目未涉及到记住我相关功能,详情建议参考:https://www.cnblogs.com/loong-hon/p/10619616.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。