首页 > 其他分享 >shiro的rememberMe各种漏洞一刀切解决

shiro的rememberMe各种漏洞一刀切解决

时间:2024-04-01 17:55:27浏览次数:23  
标签:一刀切 漏洞 void rememberMe protected 即可 Override shiro

rememberMe的低版本AES固定密码导致的漏洞,高版本仍然有被爆破,穷举的风险等。这种东西总是在安全检测的时候被拿出来说事儿,然而项目中并未开启rememberMe,也就是说压根不需要这个功能。那此时采用重写代码来直接杜绝这东西即可,任凭它怎么检测,已经没有这个口子了。

跟踪源码会发现,在创建DefaultWebSecurityManager的时候,默认会注入一个CookieRememberMeManager,它里面就是主要实现这个rememberMe的功能。image

而且没有提供注入CookieRememberMeManager的构造类,但是父类中提供了set方法
image

处理办法

  1. 自己实现一个RememberMeManager继承AbstractRememberMeManager。空的实现即可,不提供任何相关逻辑,因为压根用不到。比如如下:
    public class IgnoreRememberManager extends AbstractRememberMeManager {

    @Override
    protected void forgetIdentity(Subject subject) {}

    @Override
    protected void rememberSerializedIdentity(Subject subject, byte[] serialized) {
    }

    @Override
    protected byte[] getRememberedSerializedIdentity(SubjectContext subjectContext) {
    return null;
    }
    @Override
    public void forgetIdentity(SubjectContext subjectContext) {}
    }

  2. 创建DefaultWebSecurityManager时设置它即可,比如Spring配置文件:
    <bean id="rememberMeManager" class="com.lw.security.shiro.IgnoreRememberManager"/> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="shiroDbRealm" /> <property name="cacheManager" ref="shiroEhcacheManager" /> <property name="rememberMeManager" ref="rememberMeManager" /> <property name="subjectFactory" ref="casSubjectFactory"></property> </bean>

如此一来,等于完全剔除了这个功能,没有相关逻辑了。后续需要实现的时候,自行再填充自定义逻辑即可。

标签:一刀切,漏洞,void,rememberMe,protected,即可,Override,shiro
From: https://www.cnblogs.com/Nuwa/p/18109037

相关文章

  • 引入了 Shiro 的项目请求路径中带有中文报错400 的问题
    byemanjusakafromhttps://www.emanjusaka.top/2024/04/shiro-request-chinese-error-400彼岸花开可奈何本文欢迎分享与聚合,全文转载请留下原文地址。当我们的项目中引入了Shiro后,带有中文的请求路径会被拦截并返回400的错误。一般我们的请求路径是不会带有中文字符,但......
  • Shiro反序列化分析
    前言Shiro,一个流行的web框架,养活了一大批web狗,现在来对它分析分析。Shiro的gadget是CB链,其实是CC4改过来的,因为Shiro框架是自带Commoncollections的,除此之外还带了一个包叫做CommonBeanUtils,主要利用类就在这个包里环境搭建https://codeload.github.com/apache/shiro/zip/shiro......
  • 2024HVV行动-进军蓝中研判(log4j2、fastjson、Struts2、Shiro)
    1、log4j2特征:恶意请求中包含JNDI协议地址,如"ldap://"、"rmi://"等,被log4j2解析为JNDI查找。原理:在日志输出中,未对字符进行严格的过滤,执行了JNDI协议加载的远程恶意脚本,从而造成远程代码执行。影响:严重的RCE,2.0≤ApacheLog4j2<2.15.0-rc2攻击字段:${jndi......
  • shiro 整合 spring 实战及源码详解
    序言前面我们学习了如下内容:5分钟入门shiro安全框架实战笔记shiro整合spring实战及源码详解相信大家对于shiro已经有了最基本的认识,这一节我们一起来学习写如何将shiro与spring进行整合。spring整合maven依赖<dependencies><dependency><group......
  • Apache Shiro反序列化漏洞 (CVE-2016-4437)复现
    0x00漏洞简介ApacheShiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。ApacheShiro1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触......
  • Shiro-00-shiro 概览
    RBACRBCARBCAzh_CNShiroApacheShiro是一个强大且易于使用的Java安全框架,负责执行身份验证、授权、加密和会话管理。通过Shiro的易于理解的API,您可以快速而轻松地保护任何应用程序,从最小的移动应用到最大的Web和企业应用。Shiro提供了应用程序安全API,用于执行......
  • Shiro-00-shiro 概览
    RBACRBCARBCAzh_CNShiroApacheShiro是一个强大且易于使用的Java安全框架,负责执行身份验证、授权、加密和会话管理。通过Shiro的易于理解的API,您可以快速而轻松地保护任何应用程序,从最小的移动应用到最大的Web和企业应用。Shiro提供了应用程序安全API,用于执......
  • 第17天:信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等
    框架:简单代码的一个整合库,如果使用框架就只需要学习使用框架调用即可如:文件上传功能是需要很多代码来实现的,框架把这个代码进行封封装,调用即可影响:如果采用框架开发,代码的安全性是取决于框架的过滤机制 #Python-开发框架-Django&FlaskDjango1、识别插件2、Set-Cookie:expi......
  • Shiro学习笔记
    Shiroshiro外部来看:内部来看:认证登录基本流程:收集用户身份/凭证,如用户名密码调用Subject.login(),进行登录,如果错误返回异常创建自定义的Realm类,继承org.apache.shiro.realm.AuthorizingRealm类,实现doGetAuthenticationInfo()方法授权流程:首先调用Subject.isPermit......
  • shiro实现用户踢出,在线用户列表展示功能,包含常见踩坑集合、代码下载
    功能描述:用户a登录了s账号,接着用户b也登录了s账号,此时用户a将被踢出。一个账号只能一个人登录,被别人登录了,那么你就要被踢下线。本文目录shiro认证与授权理解实现需求核心以下是实现shiro用户踢出KickOutListener(登录成功后加入业务逻辑)kickOutFilter(进入controller的初级验证)配置......