目录

1、Apache Shiro简介

2、漏洞原理

关键因素:

漏洞分析:

漏洞特征:

3、影响版本

4、漏洞复现

任意命令执行

GETSHELL

防御措施


1、Apache Shiro简介

Apache Shiro是一个Java安全框架,执行身份验证、授权、密码和会话管理。

2、漏洞原理

Apache Shiro框架提供了记住我(rememberMe)的功能,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问。Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManage类中将cookie中rememberMe字段内容分别进行序列化、AES加密、Base64编码。

  1. 检索RememberMe Cookie的值
  2. Base 64解码
  3. AES解密(加密密钥硬编码)
  4. 进行反序列化操作(未过滤处理)

攻击者可以使用Shiro的默认密钥构造恶意序列化对象进行编码来伪造用户的Cookie,服务端反序列化时触发漏洞,从而执行命令。

关键因素:

AES的加密密钥在Shiro的1.2.4之前版本中使用的是硬编码: KPH+blxk5D2deZilxcaaaA==,只要找到密钥后就可以通过构造恶意的序列化对象进行编码,加密,然后作为Cookie加密发送,服务端接收后会解密并触发反序列化漏洞。在1.2.4之后,ASE秘钥就不为默认了,需要获取到Key才可以进行渗透。

漏洞分析

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

漏洞特征

在返回包的Set-Cookie中存在rememberMe=deleteMe字段

3、影响版本

Apache Shiro <= 1.2.4

4、漏洞复现

任意命令执行

(这里也可以使用收集的硬编码来做,我使用工具运行,其原理一样的)

漏洞环境搭建采用vulhub,具体方式,这里不在赘述。环境启动后,浏览器访问一下,8080端口映射

使用BP工具查看下数据包,是否存在我们的漏洞条件:

使用工具:

GitHub地址:GitHub - feihong-cs/ShiroExploit-Deprecated: Shiro550/Shiro721 一键化利用工具,支持多种回显方式Shiro550/Shiro721 一键化利用工具,支持多种回显方式. Contribute to feihong-cs/ShiroExploit-Deprecated development by creating an account on GitHub.https://github.com/feihong-cs/ShiroExploit工具使用后,我们可以输入些自己想要输入的命令:

这里我就简单创建个文件,以达到我们想要的效果

进入docker容器,查看创建文件是否成功,很显然,成功创建czz

GETSHELL

不仅可以执行任意命令,也可以反弹shell:

使用kali来进行监听,并用我们的工具来做反弹shell;(这个工具比较简单方便)

在kali下我们成功得到客户端的shell,成功getshell

复现成功!

防御措施

  • 升级Shiro到最新版本
  • WAF拦截Cookie中长度过大的rememberMe值

通过看了这位大佬的博客,学习到了shiro反序列化漏洞,也推荐给大家。

Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437) – 大鸟安全

Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)相关推荐

  1. shiro反序列化工具_Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)源码解析

    Apache Shiro Apache Shiro是一个功能强大且灵活的开源安全框架,主要功能包括用户认证.授权.会话管理以及加密.在了解该漏洞之前,建议学习下Apache Shiro是怎么使用. d ...

  2. Shiro的Java原生反序列化漏洞

    参考: http://www.lmxspace.com/2019/10/17/Shiro-%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E8%AE%B0%E5%BD%95/ ...

  3. Apache Shiro Padding Oracle Attack (Shiro-721)漏洞复现

    Apache Shiro Padding Oracle Attack (Shiro-721)漏洞复现 环境搭建 安装git 使用dockerfile 启动docker 获取dockerfile 查看是 ...

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

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

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

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

  6. java反序列化漏洞的一些gadget

    目录 0x00 URLDNS 0x01 Commons Collections 0x02 RMI的codebase任意代码执行 0x03 JNDI 0x04 LDAP 0x05 JDK7u21 首先说 ...

  7. Apache Shiro<=1.2.4反序列化RCE漏洞

    版本:Apache Shiro<=1.2.4 介绍:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. 漏洞原因:因为shiro对cookie里的r ...

  8. Apache Shiro RememberMe 1.2.4 反序列化过程命令执行漏洞【原理扫描】

    文章目录 一.分析定位 1. 漏洞描述 2. 项目引发漏洞简述 二. 若依系统 2.1. 版本升级 2.2. 配置文件 2.3. 推荐做法 2.4. 栗子 2.5. 项目场景 三.Gus系统 3.1. ...

  9. Apache Shiro Java 反序列化漏洞分析

    Shiro概述 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.目前在Java web应用安全框架中,最热门的产品有Spring Security和Sh ...

最新文章

  1. 异步系统接口调用流程图
  2. Macbook Pro休眠唤醒后后台运行程序被关闭的解决方法
  3. 庆贺:在国产平台上成功运行gluegen/jogl 2.3.2
  4. timesat数据如何读取_【续篇】如何通过HART协议将流量计实时数据读取到上位机(文末有彩蛋)...
  5. 《非洲归来 不必远方》读后感
  6. 应用安全设计规范--模板
  7. PhotoShop 将图片裁剪为圆形 并加边框
  8. The Oregon Trail 俄勒冈之旅
  9. 学Python编程好找工作吗?岗位方向多吗?
  10. Win10 提示WerFault.exe 应用程序错误解决方法(非常规方法)
  11. 活动报道 | 四家香港科大EMBA校友所在企业荣登“中国卓越管理公司”第三届榜单...
  12. Android应用分身检测
  13. python数据分析(三)——pandas缺失值处理
  14. 【译】Rust 实现一个 DNS 客户端,我从中学到什么
  15. 怎么学习电脑板编程c语言,电脑编程c语言学习
  16. python如何输入一个数_Python 数据的输入
  17. 美东部网站宕机后续:1100万路由器和摄像头仍在公网“裸奔”
  18. 线性代数 |矩阵【运算、逆、转置】
  19. mysql中文乱码server_mysql中文乱码解决方法
  20. 19种音频格式介绍及音质压缩比的比较 1

热门文章

  1. 【ARM-Linux开发】Rico Board上编译USB WiFi RT3070驱动
  2. 【图片版】CSS网格布局(Grid)完全教程
  3. 华为G660 root
  4. vagrant日常操作
  5. Kubernetes实战实现 Guestbook 留言板-简易版详解
  6. 祖玛游戏(记忆搜索+A*算法)
  7. Qt sqlite 数据库操作封装
  8. struts2+spring+hibernate
  9. Windows 10中蓝牙鼠标连接
  10. linux下i2c与pca9555通信,pca9555(i2c-gpio扩展)应用层测试代码