CVE-2020-1957 漏洞复现
先声明一下,免杀还是会更的,不过中间可能会穿插一下渗透的内容!!!
踩坑点:
在一开始翻阅了CSDN之后,发现不同文章之间存在出入,于是最后去了CVE的官方文档,和参考一些国外的底层代码审计人员的报告,发现原理和CSDN上的部分文章存在出入,但是POC是相同的。最后在参考国外文章之后修正了报告
CVE-2020-1957原理:
在Spring和Shiro(版本<1.5.2)搭配使用的时候会产生权限绕过漏洞。
在黑客传入的POC : https://........./test/..;/admin/ 中,它的框架检验代码如下:

- 先通过这段代码,在uri.indexOf(“;”)中,将截断 ;后面的请求。
- 然后通过normalize()这个函数,对反斜线进行替换,//,/./,/../ 都替换为 /
- 过getPathWithinApplication()函数的处理,最终Shiro 需要校验的URL 就是
/test/..
然后传入到getChain()函数中进行校验

其中Shiro组件只对/admin/** 这样的path进行了匹配,其他都会放行。
所以我们最原始的请求 https://........./test/..;/admin/ 就成功进入到了SpringBoot的校验中(这也是整个漏洞的产生原理)
然后SpringBoot就会对这个URL进行检查

又因为SpringBoot的getPathWithinServletMapping()函数通常是返回的Servletpath
所以就直接返回了/admin/ 这样的URL, 至此,就饶过了身份验证。
漏洞复现:
本次复现环境使用的是Vulhub靶场! 首先对登录界面进行抓包。


这时候我们直接去访问/Admin 这个界面是肯定会有拦截的(因为被Shrio的过滤器匹配到了)

302跟进之后发现,他又跳转到了我们的登录界面

然后我们用我们的POC去访问,成功绕过身份验证。

检测工具:
由于此漏洞并没有特别大的影响,在网上并没有搜索到对应的工具。
本人尝试了使用渊龙SEC曾哥spring工具,以及其他Shiro工具也并未能检测出漏洞。

所以只能收录为一个POC,在后续的武器开发之中能加入这一POC检测。
修复建议:
将Shiro版本进行升级。在新版本的Shiro中GetRequestURL是由contextPath()+ servletPath()+ pathinfo() 这三个函数组合而成,当黑客传入https://........./test/..;/admin/ POC之后,在Shiro的过滤之下,返回的路径将会变成/admin/成功匹配,不会放行,成功防止了权限的绕过。
参考文章:
Shiro权限绕过漏洞分析(CVE-2020-1957) - FreeBuf网络安全行业门户
https://www.cnblogs.com/backlion/p/14055274.html
shiro权限绕过漏洞分析(cve-2020-1957) | Spoock
相关文章:
CVE-2020-1957 漏洞复现
先声明一下,免杀还是会更的,不过中间可能会穿插一下渗透的内容!!! 踩坑点: 在一开始翻阅了CSDN之后,发现不同文章之间存在出入,于是最后去了CVE的官方文档,和参考一些国…...
网工内推 | 中国电信、香港宽频系统工程师,CCIE认证优先,最高年薪25w
01 中国电信股份有限公司浙江分公司 🔷招聘岗位:系统架构师 🔷岗位职责: 1、做好客户网络和信息安全产品的解决方案支撑、交付及后续运营维护,做好相关产数项目的支撑。 2、根据信息安全管理要求,负责客户…...
LLVM后端 td文件 tablegen 模式匹配 寄存器 指令集 calling convention
目录 一、寄存器 1.1 寄存器定义 1.2 寄存器分类 二、指令集 2.1 指令集定义 2.2 模式匹配 2.2.1 PatFrags与PatFrag 2.2.2 OutPatFrag 2.2.3 PatLeaf 2.2.4 ImmLeaf 2.2.5 IntImmLeaf和FPImmLeaf 2.2.6 Pat 2.2.7 ComplexPattern 2.3 指令合法化 2.3.1 Promote…...
嵌入式交叉编译:frp
参考 LINUX FRP下载编译_linux编译frpc-CSDN博客 编译 make -f Makefile.cross-compiles 检查 $ make -f Makefile.cross-compiles Build darwin-amd64... Build darwin-amd64 done Build darwin-arm64... Build darwin-arm64 done Build freebsd-amd64... Build freebsd-…...
SpringBoot实现的大文件上传
前言 大文件分片上传和断点续传是为了解决在网络传输过程中可能遇到的问题,以提高文件传输的效率和稳定性。 首先,大文件分片上传是将大文件分割成较小的片段进行上传。这样做的好处是可以减少单个文件的传输时间,因为较小的文件片段更容易快…...
【Python高级编程】用 Matplotlib 绘制迷人的图表
用 Matplotlib 绘制迷人的图表 引言 Matplotlib 是 Python 中广泛使用的绘图库,用于创建各种图表和可视化。本文将逐步指导您使用 Matplotlib 绘制基本图表,包括折线图、条形图和散点图。 安装 Matplotlib 使用 pip 安装 Matplotlib: pi…...
【UML用户指南】-19-对基本行为建模-用例图
目录 1、组成结构 2、表示法 3、一般用法 3.1、对主题的语境建模 3.2、对主题的需求建模 4、常用建模技术 4.1、对系统的语境建模 4.1.1、设计过程 4.2、对系统的需求建模 4.2.1、设计过程: 5、正向工程 UML 中的用例图是对系统的动态方面建模的 5 种图之…...
mysql密码过期的修改(Your password has expired. ..)
参考文章:mysql密码过期的修改方法(your password has expired)_我是知青-RuoYi 若依 (csdn.net) 问题:Your password has expired. To log inyou must change it using a clientthat supports expired passwords. 解决方式&…...
vivado SLR
描述 超级逻辑区(SLR)是包含在堆叠硅中的单个FPGA芯片 互连(SSI)设备。堆叠式硅互连(SSI)技术使用无源硅 具有微凸块和硅通孔(TSV)的内插器,用于组合多个FPGA管芯 切片&a…...
【CSS】深入了解圆角属性border-radius
border-radius 是 CSS 中的一个非常有用的属性,它允许你创建具有圆角边框的元素。这个属性可以应用于一个元素的四个角,或者分别应用于每个角。下面我们将深入了解 border-radius 的使用方法和一些高级技巧。 基本用法 你可以通过为 border-radius 指定…...
LabVIEW与C#的区别及重新开发自动测试程序的可行性分析
LabVIEW和C#是两种广泛使用的编程语言,各自有不同的应用领域和特点。本文将详细比较LabVIEW与C#在自动测试程序开发中的区别,并分析将已完成的LabVIEW自动测试程序重新用C#开发的合理性。本文帮助评估这种转换的必要性和潜在影响。 LabVIEW与C#的区别 开…...
人工智能—美国加利福尼亚州房价预测实战
引言 在当今快速发展的房地产市场中,房价预测已成为一个至关重要的领域。它不仅关系到投资者的决策,也直接影响到普通购房者的生活质量。特别是在美国加利福尼亚州,这个以其高房价和房地产市场的波动性而闻名的地方,准确的房价预…...
python pandas处理股票量化数据:笔记2
有一个同学用我的推荐链接注册了tushare社区帐号https://tushare.pro/register?reg671815,现在有了170分积分。目前使用数据的频率受限制。不过可以在调试期间通过python控制台获取数据,将数据保存在本地以后使用不用高频率访问tushare数据接口…...
enum库
Python enum 模块教程 enum 是 Python 3.4 引入的一个模块,用于定义枚举类型。枚举类型是一种特殊的数据类型,由一组命名的值组成,这些值称为枚举成员。使用 enum 可以提高代码的可读性和可维护性,特别是在处理一组相关的常量值时…...
【CT】LeetCode手撕—141. 环形链表
目录 题目1- 思路2- 实现⭐141. 环形链表——题解思路 3- ACM实现 题目 原题连接:141. 环形链表 1- 思路 模式识别 模式1:判断链表的环 ——> 快慢指针 思路 快指针 ——> 走两步慢指针 ——> 走一步判断环:若快慢相遇则有环&a…...
python,自定义token生成
1、使用的包PyJWT来实现token生成 安装:pip install PyJWT2.8.0 2、使用例子: import jwt import time pip install pyJWT2.8.0 SECRET_KEY %^ES*E&Ryurehuie9*7^%$#$EDFGHUYTRE#$%^&%$##$RTYGHIK DEFAULT_EXP 7 * 24 * 60def create_token(…...
小米SU7遇冷,下一代全新车型被官方意外曝光
不知道大伙儿有没有发现,最近小米 SU7 热度好像突然之间就淡了不少? 作为小米首款车型,SU7 自上市以来一直承载着新能源轿车领域流量标杆这样一个存在。 发售 24 小时订单量破 8 万,2 个月后累计交付破 2 万台。 看得出来限制它…...
JavaScript 函数与事件
1. JavaScript自定义函数 语法: function 函数名(参数列表){ 方法体; } 在函数被调用时,一个 arguments 对象就会被创建,它只能使用在函数体中,以数组的形式来管理函数的实际…...
Qt 焦点系统关键点总结
1.1 焦点窗口 指的是当前时刻拥有键盘输入的窗口。 Qt提供了如下接口,用于设置窗口是否是”可获取焦点“窗口: void QWidget::setFocusPolicy(Qt::FocusPolicy policy); Qt::FocusPolicy Qt::TabFocus 与焦点链相关,详解见下一…...
SpringBoot+Maven项目的配置构建
文章目录 1、application.properties2、pom.xml 1、application.properties 也可使用yml yaml #静态资源 spring.mvc.static-path-pattern/images/** #上传文件大小设置 spring.http.multipart.max-file-size10MB spring.http.multipart.max-request-size10MBspring.mvc.path…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
Redis上篇--知识点总结
Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...
Python爬虫(四):PyQuery 框架
PyQuery 框架详解与对比 BeautifulSoup 第一部分:PyQuery 框架介绍 1. PyQuery 是什么? PyQuery 是一个 Python 的 HTML/XML 解析库,它采用了 jQuery 的语法风格,让开发者能够用类似前端 jQuery 的方式处理文档解析。它的核心特…...
汇编语言学习(三)——DoxBox中debug的使用
目录 一、安装DoxBox,并下载汇编工具(MASM文件) 二、debug是什么 三、debug中的命令 一、安装DoxBox,并下载汇编工具(MASM文件) 链接: https://pan.baidu.com/s/1IbyJj-JIkl_oMOJmkKiaGQ?pw…...
XXE漏洞知识
目录 1.XXE简介与危害 XML概念 XML与HTML的区别 1.pom.xml 主要作用 2.web.xml 3.mybatis 2.XXE概念与危害 案例:文件读取(需要Apache >5.4版本) 案例:内网探测(鸡肋) 案例:执行命…...
