当前位置: 首页 > news >正文

Apache Shiro 漏洞复现

文章目录

  • Apache Shiro 漏洞复现
    • 1. Apache Shiro 1.2.4 反序列化漏洞
      • 1.1 漏洞描述
      • 1.2 漏洞原理
      • 1.3 漏洞复现
        • 1.3.1 环境启动
      • 1.4 漏洞利用
      • 1.5 修复方案

Apache Shiro 漏洞复现

链接地址:Vulhub - Docker-Compose file for vulnerability environment

1. Apache Shiro 1.2.4 反序列化漏洞

1.1 漏洞描述

说明内容
漏洞编号CVE-2016-4437
漏洞名称Apache Shiro 1.2.4 反序列化漏洞
漏洞评级高危
影响范围Apache Shiro 1.2.4
漏洞描述Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。
修复方案打补丁,上设备,升级组件

1.2 漏洞原理

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

1.3 漏洞复现

1.3.1 环境启动

image-20230908200140028

说明:这里我修改了docker-compose.yml配置文件的端口号。

服务启动后,访问http://your-ip:8090可使用admin:vulhub进行登录。

image-20230908205513086

登录成功

image-20230908200406396
使用bp进行抓包

image-20231010214005259

登录后的响应包,中的Set-Cookie字段,字段内容rememberMe=deleteMe,那么很可能Shiro框架,并且存在Shiro反序列化漏洞。

1.4 漏洞利用

利用Shiro工具进行链接

在URL中输入登录界面的路径然后点击密钥爆破,检测是否存在Shiro框架。

image-20230908203605728

查看利用链,测试哪一个CC链可以利用。

image-20230908203646713

然后输入命令执行即可

image-20230908203800371

1.5 修复方案

  1. 确定自己使用的shiro版本要高于1.2.4。

  2. 在代码中全局搜索 “setCipherKey(Base64.decode(” 关键字,或者"setCipherKey"方法,Base64.decode()中的字符串就是shiro的密钥,要确保该密钥的安全性,千万不要使用公开的密钥。

相关文章:

Apache Shiro 漏洞复现

文章目录 Apache Shiro 漏洞复现1. Apache Shiro 1.2.4 反序列化漏洞1.1 漏洞描述1.2 漏洞原理1.3 漏洞复现1.3.1 环境启动 1.4 漏洞利用1.5 修复方案 Apache Shiro 漏洞复现 链接地址:Vulhub - Docker-Compose file for vulnerability environment 1. Apache Shi…...

炒现货白银的最佳时间

天时地利人和是我们进行现货白银投资最关键的因素。天时是指我们因时而动,在适合的时机出击。地利,就是我们对市场的定位,对自己入场的定位有清晰的了解,并且这些位置对我们有利。人和就是指投资者的状态很好,对如何进…...

C# OpenVINO 人脸识别

效果 耗时 Preprocess: 1.41ms Infer: 4.38ms Postprocess: 0.03ms Total: 5.82ms 项目 代码 using OpenCvSharp; using Sdcb.OpenVINO; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.Text; using Syste…...

ESP32-WROOM-32无法进入下载模式进行程序上传的问题

结论 先说结论,ESP32-WROOM-32无法进入下载模式通过串口进行程序上传,可能是GPIO2引脚没有通过下拉电阻拉低,导致无法进入正确的启动模式。 启动模式 ESP32启动时会打印rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) 复位源rs…...

尚硅谷Flink(一)

目录 ☄️前置工作 fenfa脚本 🌋概述 ☄️Flink是什么 ☄️特点(多nb) ☄️应用场景(不用看) ☄️分层API 🌋配环境 ☄️wordcount ☄️WcDemoUnboundStreaming 🌋集群部署 ☄️集…...

C++ 设计模式 —— 桥接模式

C 设计模式 —— 桥接模式 0. 引用连接 本文主要的思路和代码,来自于对以下连接的学习和实现: 桥接模式 1. 引言 1.1 什么是桥接模式? 桥接模式的定义桥接模式的作用 桥接模式,顾名思义,就像是一座连接两岸的桥…...

微信怎么删除好友?非常简单,2个方法!

随着生活和工作的节奏加快,这也导致我们微信里的联系人变得越来越多。有时候,我们可能只是需要给对方转钱、发送照片或者是一些其他理由。 而这部分“好友”可能除了这次交流后再也没有别的联系了,那么这时候大家可能会想把他们删除。那么微…...

小谈设计模式(25)—职责链模式

小谈设计模式(25)—职责链模式 专栏介绍专栏地址专栏介绍 职责链模式分析角色分析抽象处理者(Handler)具体处理者(ConcreteHandler)客户端(Client) 优缺点分析优点123 缺点12 应用场…...

Python- JSON-RPC创建一个远程过程调用

我们使用JSON-RPC创建一个远程过程调用的例子,我们将使用jsonrpcserver库和Flask框架创建一个后端服务,并使用jsonrpcclient作为客户端。这个例子将包括: 一个计算服务,提供加、减、乘、除四个方法。错误处理:除数为零…...

Linux中scp命令复制文件

scp命令是在Linux中用于在本地主机和远程主机之间进行安全传输文件的命令。下面是使用scp命令的语法: scp [参数] [来源路径] [目标路径]参数: -r:递归复制整个目录。-P:指定远程主机的端口。-p:保留原文件的修改时间…...

Interlay采用Moonbeam路由流动性,为波卡发展更多流动性

波卡上的首选多链开发平台Moonbeam宣布Interlay现在支持由Carrier赋能的Moonbeam路由流动性。Carrier是一个功能强大的token和NFT跨链桥,支持超过12个网络。Interlay是波卡上的一条平行链,与HydraDX一起通过Wormhole、Moonbeam和Carrier为波卡生态挖掘流…...

Jetson Orin NX 开发指南(9): Pixhawk 6X 飞控固件的烧写与 QGroundControl 参数配置

一、前言 由于 Jetson Orin NX 常被用作自主无人机机载电脑,其往往需要与烧写了 PX4 固件的飞控进行通信,飞控的烧写与配置往往会遇到很多问题,因此本文将介绍时下最款的 Pixhawk 系列飞控 Pixhawk 6X,做一个固件烧写和参数配置的…...

Redis(四)多级缓存

文章目录 一、传统缓存存在的问题二、多级缓存方案三、JVM进程缓存案例演示: 四、Lua语法入门Lua语言入门 五、多级缓存(一)安装OpenResty(二)OpenResty入门(三)请求参数处理(四&…...

网站安全防护

1.确保环境安全例如近期LNMP投毒事件 2.nginx/php隐藏版本号/关闭报错显示行 3.限制3306端口/phpMyAdmin尽量不用 4.修改指纹例如X-Powered-By/Cookie 5.上线前后进行主机漏扫网站漏扫 6.系统安装杀毒ClamAV 7.更改后台管理入口 8.安装雷池WAF防护 9.网站使用https协议 10.后台…...

腾讯云南京地域怎么样?南京服务器IP测速Ping值延迟

腾讯云服务器南京地域怎么样?南京地域很不错,正好处于中间的位置,南方北方用户均可以选择,网络延迟更低速度更快,并且目前南京地域有活动,南京地域可用区可选南京一区、南京二区和南京三区,腾讯…...

Harbor 简介

1)什么是Harbor Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。 Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based…...

RuntimeError: “LayerNormKernelImpl“ not implemented for ‘Half‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

《向量数据库指南》——向量数据库与 ANN 算法库的区别

向量数据库与 ANN 算法库的区别 我们经常听到一个这样的错误观念——向量数据库只是在 ANN(approximate nearest neighbor,近似最近邻)算法上封装了一层。但这种说法大错特错。 向量数据库可以处理大规模数据,而 ANN 算法库只能处理小型的数据集 从本质上来看,以 Milvus 为…...

JavaScript-es6-新版语法-export-import

文章目录 1.export2.import3.export default 命令4.总结 在JavaScript ES6中,export与export default均可用于导出常量、函数、文件、模块等。模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输…...

[elasticsearch]使用postman来查询数据

最近需要debug程序,debug的时候需要查找elasticsearch里面的数据是否正确。 第一步建立一个post请求,并按照图下的方式填上ur和参数: 发送post请求,url为: http://ip:port/index_name/_search我这里查询的是title字…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

Java 加密常用的各种算法及其选择

在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求&#xff…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...