shiro CVE-2020-13933
0x00 前言
同CVE-2020-1957,补充一下笔记,在CVE-2020-1957的基础上进行了绕过。
影响版本:Apache Shiro < 1.6.0
环境搭建参考:shiro CVE-2020-1957
0x01 漏洞复现
CVE-2020-13933中使用%3b绕过了shiro /*的检测方式,同样是利用了spring和shiro的解析差异

0x02 漏洞分析
1.shiro
可以先看shiro CVE-2020-1957
在这里的url处理中,会将%3b解析成;,但是如果是明文的话,会直接进行截断。

经过解码之后的url,如下图所示:
在decodeAndCleanUriString中将;进行切分

得到url为:
去除\
那么最终进行权限校验的url为:/hello,如此即可绕过shiro的权限防护
2.Spring
在Spring中会将%3ba作为一整个参数进行解析,硬要说的话就是可以通过%3b绕过removeSemicolonContentInternal的检测

0x03 漏洞修复
新增类,对特殊字符进行过滤

默认多加了/**,避免匹配不到的问题

修复后测试

相关文章:
shiro CVE-2020-13933
0x00 前言 同CVE-2020-1957,补充一下笔记,在CVE-2020-1957的基础上进行了绕过。 影响版本:Apache Shiro < 1.6.0 环境搭建参考:shiro CVE-2020-1957 0x01 漏洞复现 CVE-2020-13933中使用%3b绕过了shiro /*的检测方式&…...
斐波那契数列(递归+迭代)
目录什么是斐波那契数列递归写法使用递归写法的缺点迭代写法(效率高)什么是斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多斐波那契(Leonardo Fibonacci)以兔子繁殖为例…...
2022黑马Redis跟学笔记.实战篇(六)
2022黑马Redis跟学笔记.实战篇 六4.7.达人探店功能4.7.1.分享探店图文1. 达人探店-发布探店笔记2. 达人探店-查看探店笔记4.7.2.点赞功能4.7.3.基于List实现点赞用户列表TOP104.7.4.基于SortedSet实现点赞排行榜4.8.关注列表4.8.1.关注列表实现原理4.8.2.添加关注1. 好友关注-关…...
Linux-VMware常用设置(时间+网络)及网络连接激活失败解决方法-基础篇②
目录一、设置时间二、网络设置1. 激活网卡方法一:直接启动网卡(仅限当此)方法二:修改配置文件(永久)2. 将NAT模式改为桥接模式什么是是NAT模式?如何改为桥接模式?三、虚拟机网络连接…...
vue3学习总结1
一.vue3与vue2相比带来哪些变化?a.性能的提升(包括打包大小减少,初次渲染的速度加快,更新渲染速度加快,内存减少)b.源码的升级(响应式的原理发生了变化,由原来的defineProperty变成了…...
SpringBoot统一功能处理
一、统一用户登录权限验证 1.1Spring拦截器 实现拦截器需要以下两步: 1.创建自定义拦截器,实现 HandlerInterceptor 接⼝的 preHandle(执行具体方法之前的预处理)方法。 2.将⾃定义拦截器加⼊ WebMvcConfigurer 的 addIntercept…...
2022年3月电子学会Python等级考试试卷(五级)答案解析
目录 一、单选题(共25题,共50分) 二、判断题(共10题,共20分) 三、编程题(共3题,共30分) 青少年软件编程(Python)等级考试试卷(五级&#...
【C++】智能指针
目录 一、先来看一下什么是智能指针 二、 auto_ptr 1、C98版本 2、C11的auto_ptr 三、boost 库中的智能指针 1. scoped_ptr 2、shared_ptr(最好的智能指针) 四、C11中新提供的智能指针 unique_ptr shared_ptr std::shared_ptr的循环引用问题…...
Seata架构篇 - AT模式
AT 模式 概述 Seata AT 模式是一种非侵入式的分布式事务解决方案,Seata 在内部做了对数据库操作的代理层,我们使用 Seata AT 模式时,实际上用的是 Seata 自带的数据源代理 DataSourceProxy,Seata 在这层代理中加入了很多逻辑&am…...
加油站会员管理小程序实战开发教程12
我们上一篇介绍了会员数据源的开发,本节我们介绍一下会员注册功能。 首先呢梳理一下会员注册的业务逻辑,如果用户是首次登录,那他肯定还没有给我们的小程序提交任何的信息。那么我们就在我的页面给他显示一个注册的按钮,如果他已经注册过了,那么就正常显示会员的信息,他…...
用腾讯云同步Obsidian笔记
介绍 之前用gitee同步OB笔记,同时做图床。但由于git系产品设置起来相对复杂,且后续可能有外链过审等问题。周五被同事小姐姐安利了用腾讯云COS,试了一下,果然不错。其主要优点如下: 设置简单,学习成本低&…...
浅析C++指针与引用,栈传递的关系
目录 前言 C 堆指针 栈指针 常量指针 指针常量 引用 常量引用 总结 前言 目前做了很多项目,接触到各种语言,基本上用什么学什么,语言的边际就会很模糊,实际上语言的设计大同小异,只是语言具备各自的特性区别。…...
图解LeetCode——剑指 Offer 10- II. 青蛙跳台阶问题
一、题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e97(1000000007),如计算初始结果为:1000000008,请返回 1。 二、示例 2.1>…...
【Linux】用户分类+权限管理+umask+粘滞位说明
目录 1.用户分类 su指令 2.认识Linux权限 2.1 文件访问者的分类 2.2 文件类型和访问权限 a. 文件类型 file指令 b. 访问权限 2.3 文件权值的表示方法 a. 字母表示法 b. 八进制表示法 3.如何修改文件访问者的权限及相关指令 1. chmod指令 2. chown指令 3. chgrp指…...
【干货】如何打造HR无法拒绝的简历?测试开发大牛带手把手你写简历!
通过率90%,优秀的软件测试简历长什么样? 也许口才好的人会觉得简历不重要,能说就行了,那是因为你没有体会过石沉大海的感觉! 很多人觉得疑惑,为什么我投了那么多简历,都没有接到面试通知&…...
nodejs学习-4:nodejs连接mongodb和相关操作
1. express生成器生成express模板 前提需要首先下载好:express-generator,命令如下(全局安装) npm install -g express-generator生成模板命令如下: express 项目名称 --viewejs // --view 参数表示前端界面使用的引擎,这里使用…...
【博客629】Linux DNS解析原理与配置
Linux DNS解析原理与配置 1、DNS缓存 作用: 程序客户端、下游的 DNS 服务器每次查询 DNS 成功之后,通常会将该 DNS 记录缓存一段时间,避免频繁发出查询请求的耗时。 Linux下的DNS缓存: Linux 系统默认不会在本地建立 DNS 缓存…...
【CSP】202212-2 训练计划
题目 问题背景 西西艾弗岛荒野求生大赛还有 天开幕! 问题描述 为了在大赛中取得好成绩,顿顿准备在 天时间内完成“短跑”、“高中物理”以及“核裂变技术”等总共 项科目的加强训练。其中第 项( )科目编号为 ,也可简…...
java基础学习 day42(继承中构造方法的访问特点,this、super的使用总结)
继承中,构造方法的访问特点 父类的构造方法不会被子类继承,但可以通过super()调用父类的构造方法,且只能在子类调用,在测试类中是不能手动单写构造方法的。子类中所有的构造方法默认先调用父类的无参构造,再执行自己构…...
生物医药多组学与生物信息方法介绍
基因组学告诉你可能发生什么,转录组学和蛋白组学告诉你即将发生什么,而代谢组学告诉你正在发生什么 1、多组学与生信方法 生物医学技术的组学包括基因组学、转录组学、蛋白质组学、代谢组学和表观基因组学等。这些组学研究领域通过大量数据的高通量技术…...
用74LS175D和面包板,手把手教你做一个四人抢答器(附完整电路图)
从零搭建四人抢答器:74LS175D芯片实战指南 在电子技术学习过程中,没有什么比亲手搭建一个实际可用的电路更能加深理解了。今天,我们将使用经典的74LS175D芯片,配合面包板、LED和按键开关,一步步构建一个功能完整的四人…...
南北阁4.1-3B WebUI代码实例:TextIteratorStreamer多线程流式实现解析
南北阁4.1-3B WebUI代码实例:TextIteratorStreamer多线程流式实现解析 今天咱们来聊聊一个特别有意思的项目——一个为南北阁4.1-3B模型量身定做的Web交互界面。如果你用过Streamlit,可能会觉得它的界面有点“官方”,布局也比较固定。但这个…...
3类被90%开发者忽略的农田图像噪声——基于ISO 17202-2标准的Python去噪实战手册
第一章:农田图像噪声的认知革命与ISO 17202-2标准全景解读传统农业视觉系统长期将图像噪声视为需“压制”的干扰项,而ISO 17202-2:2023《农业遥感图像质量评估—第2部分:噪声建模与语义敏感性分级》首次确立噪声作为农田场景的**可解释性特征…...
Android Perfetto 系列 6:为什么是 120Hz?高刷新率的优势与挑战
Android Perfetto 系列 6:为什么是 120Hz?高刷新率的优势与挑战本文是 Android Perfetto 系列的第六篇,主要介绍 Android 设备上 120Hz 刷新率的相关知识。如今,120Hz 已成为 Android 旗舰手机的标配,本文将讨论高刷新…...
【大窗除强信号,小窗清残留】基于双尺度广义交叉验证阈值的地震信号自适应剥离和噪声提取方法(MATLAB)
背景知识在环境噪声层析成像等研究中,我们需要的是纯粹的“噪声”记录,而不是被地震信号“污染”的波形。传统方法是人工剔除含事件的时间段,或者用时间域归一化压制信号,但这些方法要么主观,要么难以彻底去除能量较强…...
8路HD-SDI录播主机CYS-08
在广电录制、教育录播、会议记录等场景中,稳定、高清、易管理的视频录制设备至关重要。春源丽影CYS-08 推出的8路HD-SDI硬盘录像机,凭借全接口支持、双编码技术、智能存储等核心优势,为多路高清录制需求提供了专业级解决方案。8路高清输入&am…...
PyQt新手必看:Fluent Widgets vs PyQtGraph,哪个更适合你的GUI项目?
PyQt新手指南:Fluent Widgets与PyQtGraph的深度对比与选型策略 当你第一次踏入PyQt GUI开发的世界,面对琳琅满目的框架选择,是否感到迷茫?Fluent Widgets和PyQtGraph这两个名字可能已经出现在你的搜索列表中,但它们究竟…...
基于Python的本科生交流培养管理平台毕业设计源码
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。 一、研究目的 本研究旨在设计并实现一个基于Python的本科生交流培养管理平台,以提升我国高等教育中本科生交流培养的质量与效率。具体研究目的如下:…...
WebGL BIM可视化:浏览器端BIM解决方案的技术实践与行业应用
WebGL BIM可视化:浏览器端BIM解决方案的技术实践与行业应用 【免费下载链接】xeokit-bim-viewer A browser-based BIM viewer, built on the xeokit SDK 项目地址: https://gitcode.com/gh_mirrors/xe/xeokit-bim-viewer 如何解决浏览器端BIM模型加载慢、操…...
手把手教你用Node.js和Bun配置Cursor AI与Figma的MCP通信(附完整避坑清单)
从零构建Cursor AI与Figma的MCP通信桥梁:Node.jsBun全链路配置指南 当设计工具与AI代码助手实现双向通信时,创意工作流将迎来革命性变化。本文面向具备Node.js基础的前端/全栈开发者,深入解析如何搭建Cursor AI与Figma间的MCP协议通信通道。…...
