IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 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,打开工具运行界面
双击此处的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版本来避免该漏洞的发生!

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-14 10:12:53  更:2022-05-14 10:13:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:43:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码