Apache Shiro 反序列化漏洞

2021-02-06 02:34:09,886 [http-bio-8000-exec-18] WARN  [org.apache.shiro.mgt.DefaultSecurityManager] - Delegate RememberMeManager instance of type [org.apache.shiro.web.mgt.CookieRememberMeManager] threw an exception during getRememberedPrincipals().
org.apache.shiro.io.SerializationException: Unable to deserialze argument byte array.
    at org.apache.shiro.io.DefaultSerializer.deserialize(DefaultSerializer.java:82)
    at org.apache.shiro.mgt.AbstractRememberMeManager.deserialize(AbstractRememberMeManager.java:514)

1)、Apache Shiro框架提供了记住我的功能(RememberMe),用户登陆成功后会生成经过加密并编码的cookie。cookie的key为RememberMe,cookie的值是经过对相关信息进行序列化,然后使用aes加密,最后在使用base64编码处理形成的。
在服务端接收cookie值时,按照如下步骤来解析处理:
1、检索RememberMe cookie 的值
2、Base 64解码
3、使用AES解密(加密密钥硬编码)
4、进行反序列化操作(未作过滤处理)

在调用反序列化时未进行任何过滤,导致可以触发远程代码执行漏洞。

意思就是说shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值>>>Base64解码>>>AES解密>>>反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。

2)、Apache Shiro 使用公开 AES 秘钥加密传输 使用默认 AES 秘钥的服务器容易遭受反序列化攻击,攻击者能在服务端执行任意代码。 Apache Shiro 在 1.2.4 之前版本中使用 AES 硬编码秘 钥,存在严重的反序列化漏洞,攻击者可以在远程主机上执行任意指令 ,建议 检查 Shiro 版本信息,若 <=1.2.4请升级至 1.2.5 及以上版本 。

3)、也可以自定义key替换默认的来避免,生成key代码如下

 
  1. //密钥生成java代码(直接拷贝到main允许即可)

  2. KeyGenerator keygen = KeyGenerator.getInstance("AES");

  3. SecretKey deskey = keygen.generateKey();

  4. System.out.println(Base64.encodeToString(deskey.getEncoded()));

Apache Shiro 反序列化漏洞 [org.apache.shiro.web.mgt.CookieRememberMeManager]相关推荐

  1. 【漏洞复现】Apache Shiro 反序列化漏洞

    Apache Shiro 反序列化漏洞 一.简介 二.环境 三.漏洞原理 四.AES秘钥 1.判断AES秘钥 五.Shiro rememberMe反序列化漏洞(Shiro-550) 1.版本1.4.2 ...

  2. shiro反序列化漏洞学习(工具+原理+复现)

    工具准备 1.java8 C:\Program Files\Java 2.冰蝎 C:\Users\ali\Desktop\tools\Behinder_v4.0.6 3.shiro反序列化 图形化工具 ...

  3. vulhub复现之shiro反序列化漏洞复现

    目录 什么是shiro? 什么是安全框架? 反序列化与序列化 shiro反序列化漏洞 怎么判断是否存在反序列化漏洞? 什么是shiro? shiro是功能强大且容易使用的java安全框架.shiro可 ...

  4. shiro反序列化漏洞修复

    文章目录 shiro反序列化漏洞修复 前言 解决方案 shiro反序列化漏洞修复 前言 最近项目在进行安全漏洞扫描的时候,出现一个shiro的反序列化漏洞的问题:目标IP站点存在Apache shir ...

  5. Shiro反序列化漏洞利用笔记

    Shiro反序列化漏洞利用笔记 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.目前在Java web应用安全框架中,最热门的产品有Spring Sec ...

  6. 经典的Shiro反序列化漏洞分析

    更多黑客技能 公众号:小道黑客 作者:掌控安全-holic 0x01.前言 相信大家总是面试会问到java反序列化,或者会问到标志性的漏洞,比如shiro反序列化,或者weblogic反序列化漏洞. ...

  7. 4加密问题漏洞修复_Apache Shiro 反序列化漏洞实战

    Apache Shiro是一个Java安全框架,执行身份验证.授权.密码和会话管理.2016年,网络中曝光1.2.4以前的版本存在反序列化漏洞.尽管该漏洞已经曝光几年,但是在实战中仍然比较实用.花了点 ...

  8. shiro反序列化漏洞的原理和复现

    一.shiro简介 Shiro是一个强大的简单易用的Java安全框架,主要用来更便捷的认证,授权,加密,会话管理.Shiro首要的和最重要的目标就是容易使用并且容易理解. 二.shiro的身份认证工作 ...

  9. Shiro反序列化漏洞利用详解(Shiro-550+Shiro-721)

    Shiro反序列化漏洞利用详解(Shiro-550+Shiro-721) Shiro简介 Apache Shiro 是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能,Shiro ...

最新文章

  1. 前缀、中缀和后缀表达式详解,中缀表达式到后缀表达式的转换规则,以及后缀表达式的计算规则,附计算代码
  2. 透明位图的显示(TransparentBlt函数)
  3. 天谕手游里的NPC真的很好看,画风特别的靓,背景音乐是万茜唱的
  4. C语言学习之求两个整数的最大值
  5. linkbot 中文教程系列 linkbot破解教程
  6. PostgreSQL数据库配置网络访问
  7. webservice常见名词
  8. 每隔一段时间自动执行一次某个方法(使用线程)[C#]
  9. Visual Studio Code(VS Code)与Git Source Control集成
  10. Flutter进阶—铅刀一割
  11. python在线考试系统设计csdn下载_一种通用的网页相似度检测算法
  12. Java自学之路(新手一定要看)
  13. 直线旋转动画html5,多视角3D可旋转的HTML5 Logo动画
  14. arduino和单片机的区别是什么
  15. 《自控力》读书笔记及实践
  16. Redis系列总结--这几点你会了吗?
  17. 一文告诉你游戏服务器的架构到底是什么样,各服务器的职责是什么
  18. 图片编辑工具哪个好?好用的图片编辑工具介绍
  19. 本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止。某些服务在未由其它服务或程序使用时将自动停止。
  20. Android 实现答题器功能(通过手势实现翻页效果)...

热门文章

  1. uC/OS-II编译环境搭建方法
  2. 解决Win10搜索框没有反应
  3. java替换空格_字符串替换空格
  4. 传统保险企业基于 Dubbo 的微服务实践
  5. npm安装 less
  6. git报错:remote unpack failed: unable to create temporary object directory
  7. Redis 设置密码
  8. 网站建设如何优化提高转化率?
  9. HTML中容器(div)动态加载HTML页面的方法
  10. PCA降维原理 操作步骤与优缺点