Shiro漏洞检测

这篇具有很好参考价值的文章主要介绍了Shiro漏洞检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Shiro-550反序列化漏洞简介

漏洞简介
Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。

Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。

影响版本 Shiro <= 1.2.4

漏洞检测工具

工具一:ShiroExploit

支持对Shiro550(硬编码秘钥)和Shiro721(Padding Oracle)的一键化检测,支持多种回显方式

1)工具下载:ShiroExploit.V2.51

2)下载成功,双击jar,打开工具运行界面
Shiro漏洞检测
Shiro漏洞检测
界面内容简介:
–漏洞类型Shiro550-无需选择操作系统类型,无需提供rememberMe Cookie
–漏洞类型Shiro721-需要选择操作系统类型,需要提供一个有效的rememberMe Cookie
–复杂Http请求-支持直接粘贴数据包
–可以手工指定特定的 Key 和 Gadget,默认不指定,会遍历所有的 Key 和 Gadget

3)此处,直接使用工具检测 Shiro-550 漏洞,在目标地址的位置输入要检测的URL,点击下一步Shiro漏洞检测
4)选择漏洞检测方式,点击下一步

Shiro漏洞检测
由于该服务器不出网,所以选择回显进行检测

各个漏洞检测方式说明:

① 选择使用 ceye.io 进行漏洞检测

  • 可以不进行任何配置,配置文件中已经预置了 CEYE 域名和对应的 Token,当然也可以对其进行修改。
  • 程序会首先使用 URLDNS 筛选出唯一 Key,然后依次调用各个 Gadget 生成 Payload
  • 缺点:程序会使用 API:http://api.ceye.io/v1/records?token=a78a1cb49d91fe09e01876078d1868b2&type=dns&filter=[UUID] 查询检测结果,这个 API 有时候会无法正常访问,导致在这种方式下无法找到 Key 或者有效的 Gadget

② 选择 使用 dnslog.cn 进行漏洞检测

  • 可以不进行任何配置,每次启动时程序会自动从 dnslog.cn 申请一个 DNS Record。
  • 程序会首先使用 URLDNS 筛选出唯一 Key,然后依次调用各个 Gadget 生成 Payload
  • 缺点:少数时候 dnslog.cn 会间隔较久才显示 DNS 解析结果导致程序无法找到 Key 或者有效的 Gadget,且 dnslog.cn 只会记录最近的10条 DNS 解析记录

③ 选择 使用 JRMP + dnslog 进行漏洞检测

  • 需要在 VPS 上通过命令java -cp ShiroExploit.jar com.shiroexploit.server.BasicHTTPServer [HttpSerivce Port] [JRMPListener Port]开启HttpService/JRMPListener,并按照要求填入相应 IP 和端口
  • 如果开启 HttpService/JRMPListener 时未指定端口号,则 HTTPService 默认监听 8080 端口,JRMPListener 默认监听 8088 端口
  • 使用 JRMP 的方式进行漏洞检测,可以显著减小 cookie 大小
  • 程序会首先使用 URLDNS 筛选出唯一 Key,然后使用 JRMP 依次为各个 Gadget 生成对应的 JRMPListener

④ 选择 使用回显进行漏洞检测

  • 针对不出网的情况进行漏洞检测,此时可以检测的 Gadget 类型会少于使用 DNSLog 方式的 Gadget类型
  • 目前主要是通过将命令执行结果写入 Web 目录下然后读取的方式实现回显
  • 需要提供一个静态资源 URL,程序会将此静态资源所在的目录当做写入目录
  • 注:开始的时候使用 https://blog.csdn.net/fnmsd/article/details/106709736 介绍的方式实现回显,在本地可以测试成功,但是在实际环境中基本不成功(可能是我的姿势有问题,欢迎探讨),所以目前是通过读写文件的方式实现回显,后期可能会加入其它方式

5)等待检测结果

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

a.如下图,则检测到了目标存在Shiro反序列化漏洞
Shiro漏洞检测

b.若没有漏洞,则弹窗显示不存在漏洞:

Shiro漏洞检测

工具二:shiro_attack-2.2

1)工具下载:shiro_attack-2.2

2)下载成功,双击jar,打开工具运行界面

Shiro漏洞检测
3)配置进行检测

输入目标url,可以选择是post还是get。可以指定密钥可以爆破。可以爆破利用链及回显方式。下面有检测日志,命令执行,内存马等选项进行配置

Shiro漏洞检测

Shiro漏洞检测

补充说明

我在测试过程中,有时候用ShiroExploit没检测出来,但是用shiro_attack却检测出来了。建议两种工具都检测下。
当然了,最靠谱的还是升级shiro版本来避免该漏洞的发生!文章来源地址https://www.toymoban.com/news/detail-433585.html

到了这里,关于Shiro漏洞检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Shiro反序列化漏洞综合利用工具Shiro Attack使用教程

    目录 漏洞扫描 利用链检测 执行命令 注入蚁剑内存马 将目标网站输入在目标地址栏中吗,点击爆破密钥,如果发现key,则可以利用

    2024年02月13日
    浏览(27)
  • RuoYi v4.2 Shiro反序列化漏洞

    反序列化漏洞 漏洞原理 反序列化漏洞是基于序列化和反序列化的操作,在反序列化——unserialize()时存在用户可控参数,而反序列化会自动调用一些魔术方法,如果魔术方法内存在一些敏感操作例如eval()函数,而且参数是通过反序列化产生的,那么用户就可以通过改变参数来

    2024年02月01日
    浏览(39)
  • Apache Shiro反序列化漏洞研究及解决方法

    前言 一个阳光明媚的午休,我正惬意的喝着茶听着音乐,享受美好生活的时候,客户的QQ头像闪动了,原以为是出了什么新需求临时需要调整,没想到客户反馈的是平台出现了严重漏洞,不敢小视,抄起电脑开弄 我根据客户给出的安全厂商反馈的问题,总结如下: 1,Shiro反

    2024年02月11日
    浏览(41)
  • 【shiro】shiro反序列化漏洞综合利用工具v2.2(下载、安装、使用)

    shiro反序列化漏洞综合利用工具v2.2下载: 链接:https://pan.baidu.com/s/1kvQEMrMP-PZ4K1eGwAP0_Q?pwd=zbgp 提取码:zbgp 其他工具下载: 除了该工具之外,github上还有其他大佬贡献的各种工具,有许多python编写的工具,功能简单,可以作为理解shiro漏洞原理并编写自己工具的教材。 说明 :

    2023年04月08日
    浏览(37)
  • Shiro反序列化漏洞(CVE-2016-4437)+docker靶场+工具利用

    将java对象转换为字节序列(json/xml)的过程叫序列化,将字节序列(json/xml)恢复为java对象的过程称为反序列化。 Shiro框架提供了“记住我”的功能,用户登陆成功后会生成经过加密并编码的cookie,cookie的key为RememberMe,cookie的值是经过序列化的,使用AES加密,再使用base64编码

    2024年02月16日
    浏览(32)
  • Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)

    目录 前言: (一)基本介绍 0x01 影响版本 0x02 漏洞分析 根据加密的顺序,不难知道解密的顺序为: 登入  验证  (二)环境搭建 1、本地复现 0x01 源代码 0x02  pom.xml修改: 0x03 tomcat服务器 0x04  ysoserial-jar依赖 0x05  访问端口  2、vulhub  访问端口:  (三)利用工具和方式 1、

    2024年02月05日
    浏览(42)
  • Apache Shiro RememberMe 1.2.4 反序列化过程命令执行漏洞【原理扫描】

    文章目录 一、分析定位 1. 漏洞描述 2. 项目引发漏洞简述 二、 若依系统 2.1. 版本升级 2.2. 配置文件 2.3. 推荐做法 2.4. 栗子 2.5. 项目场景 三、Gus系统 3.1. shiro版本升级 3.2. 调用重新生成 3.3. 生成工具类 shiro漏洞补充: 一、分析定位 1. 漏洞描述 2. 项目引发漏洞简述 若依/Guns管

    2024年02月15日
    浏览(35)
  • shiro 721 反序列化漏洞复现与原理以及Padding Oracle Attack攻击加解密原理

    知道aes加密的key且目标服务器含有可利用的攻击链。 原理 在Shiro = 1.2.4中,反序列化过程中所用到的AES加密的key是硬编码在源码中,当用户勾选RememberMe并登录成功,Shiro会将用户的cookie值序列化,AES加密,接着base64编码后存储在cookie的rememberMe字段中. 服务端收到登录请求后,

    2024年02月05日
    浏览(32)
  • [Java反序列化]—Shiro反序列化(一)

    IDEA搭建shiro550复现环境_普通网友的博客-CSDN博客 Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。 那么,Payload产生的过程: 命令

    2024年02月06日
    浏览(32)
  • Shiro反序列化分析

    Shiro,一个流行的web框架,养活了一大批web狗,现在来对它分析分析。Shiro的gadget是CB链,其实是CC4改过来的,因为Shiro框架是自带 Commoncollections 的,除此之外还带了一个包叫做 CommonBeanUtils ,主要利用类就在这个包里 https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4 编辑shiro/s

    2024年03月24日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包