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

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

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

各个漏洞检测方式说明:

① 选择使用 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反序列化漏洞
![在这里插入图片描述](https://img-blog.csdnimg.cn/cb5ff0c9d53a42229f3d5031cbe4125f.png

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

在这里插入图片描述

工具二:shiro_attack-2.2

1)工具下载shiro_attack-2.2

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

在这里插入图片描述
3)配置进行检测

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

在这里插入图片描述

在这里插入图片描述

补充说明

我在测试过程中,有时候用ShiroExploit没检测出来,但是用shiro_attack却检测出来了。建议两种工具都检测下。
当然了,最靠谱的还是升级shiro版本来避免该漏洞的发生!

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OKSandy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值