首页 > 其他分享 >Shiro-认证绕过漏洞(CVE-2020-1957)

Shiro-认证绕过漏洞(CVE-2020-1957)

时间:2024-09-21 11:03:12浏览次数:1  
标签:.. admin xxx uri 认证 1957 2020 CVE shiro

目录

漏洞原理

核心点就是shiro和spring对uri进行配合匹配的时候有缺陷导致的,shiro中很轻易就能绕过,其次spring中对;分号好像情有独钟,被大牛们发现后也就一下子绕过了。
主流payload:/xxx/..;/admin/
具体后台路由不一定是admin,得看情况而定,但是下面的分析都由admin为后台路由进行分析。

源码分析与复现

环境说明:后台路由为/admin
下面我用vulhub开启对应的靶场
在这里插入图片描述
接着访问uri:/xxx/..;/admin
xxx是随便填,而最重要的认证绕过的是..;能够让你走到admin后台,复现成功了。
在这里插入图片描述
在该漏洞中,认证过程需要走两个框架,一个是shiro另一个是spring,uri第一个进入的是shiro接着判断完了才交给spring,这个交给spring的时候也出了问题,下面开始讲解过程。
1.shiro中可能会有这样的过滤器对uri进行匹配,分支判断是否需要认证
在这里插入图片描述
这里是配置map.put会出现问题,所以是否出现认证绕过还得看匹配的规则写的如何,这不重要,我们约定配置为:/admin/** 然后该规则下需要authc,表示需要进行身份认证,这看起来很正常,admin路由确实要求身份认证。

2.接着我们下面开始分析当请求http://xxx.xxxx.com/xxx/..;/admin在后台是如何走的:
首先经过shiro处理,直接看最重要的部分,shiro对;分号的处理。
作用:直接匹配59,即;的ascii码值,发现有分号就返回分号前的字段,否则返回整个uri。
那么这里就拿到uri:xxx/..
在这里插入图片描述

3.接下去的函数都是规范化,比如//处理成/这些就不说了,直接看最后给到拦截器判断的requestURI值为/xx/..,pathMatches就会根据拦截器判断是否为/admin/**,那么很显然不是,现在就相当于你bypass掉了shiro的认证。
在这里插入图片描述
4.shiro认证完了就到spring对uri进行认证了
怎么拿到uri就跳过了,主要分析他怎么处理;的即可
最主要跟进removeSemicolonContentInternal(requestUri)方法,他的作用就是:移除uri中/与/之间的的分号以及分号后面的内容
根据这句话可以得知最后的uri应该是:/xxx/../admin/ == /admin/
../ 为回到上一层目录,就到admin了,认证绕过结束,收工。

影响版本

Shiro < 1.5.3
SpringBoot 的版本 < 2.3


参考文章:
https://www.freebuf.com/articles/web/362350.html
https://blog.spoock.com/2020/05/09/cve-2020-1957/
https://cn-sec.com/archives/1312489.html

标签:..,admin,xxx,uri,认证,1957,2020,CVE,shiro
From: https://www.cnblogs.com/dhan/p/18423713

相关文章

  • Shiro-721—漏洞分析(CVE-2019-12422)
    目录PaddingOracleAttack原理PKCS5填充怎么爆破攻击漏洞原理源码分析漏洞复现本文基于shiro550漏洞基础上分析,建议先看上期内容:https://blog.csdn.net/weixin_60521036/article/details/142373353PaddingOracleAttack原理网上看了很多,感觉写的对我们这种对密码学不敏......
  • SketchUp v2020 激活版下载与安装教程 (强大的绘图三维建模工具)
    前言Sketchup草图大师专业版,一套面向建筑师、城市规划专家、制片人、游戏开发者以及相关专业人员的3D建模程序,全球知名的三维建模软件,强大的绘图工具、建模渲染、扩展插件和渲染器模板、海量3D模型库及建模灯光材质渲染效果图,用于建筑师、城市规划专家、游戏开发等行业。下载地址......
  • Shiro-550—漏洞分析(CVE-2016-4437)
    目录漏洞原理源码分析加密过程解密过程漏洞复现漏洞原理Shiro-550(CVE-2016-4437)反序列化漏洞在调试cookie加密过程的时候发现开发者将AES-CBC用来加密的密钥硬编码了,并且所以导致我们拿到密钥后可以精心构造恶意payload替换cookie,然后让后台最后解密的时候进行反序列化我们的......
  • Log4j2—漏洞分析(CVE-2021-44228)
    目录Log4j2漏洞原理漏洞根因调用链源码分析调用链总结漏洞复现dnsrmiLog4j2漏洞原理前排提醒:本篇文章基于我另外一篇总结的JNDI注入后写的,建议先看该文章进行简单了解JNDI注入:https://blog.csdn.net/weixin_60521036/article/details/142322372提前小结说明:Log4j2(CVE-2021-4......
  • CVE-2024-45409 漏洞解决方案
    漏洞描述CVE-2024-45409漏洞是由RubySAML库引起的。RubySAML库是用于实现SAML授权的客户端。12.2及以下的所有版本、1.13.0到1.16.0之间的Ruby-SAML版本都受此影响。这些版本不能够正确验证SAML响应的签名。因此,具有访问任何身份提供者(IdP)签署的SAML文档的未经......
  • 实操触发器的使用 mysql 20240918_102020
    需求新建日志表用于记录老师表的数据化情况起个名字teacher_log需要的列idoperationmsg建老师日志表CREATETABLEteacher_log( idINTPRIMARYKEYAUTO_INCREMENT, operationVARCHAR(11)NOTNULL, msgVARCHAR(200)NOTNULL);定义添加触发器如果往老师表tea......
  • CS 61A Fall 2020 起步
    今天在曹大的知识星球立了一个flag,如下: 为什么会想到立这个flag呢?自己从本科的时候,就对计算机“感兴趣”,考研的时候选择了国内计算机名校的计算机专业,但是在读研期间写的代码并不多,没有从写代码中获得持续的正反馈。去年,我入职了一家国企,从事软件开发工作,刚入职的时候就开......
  • 【数据分享】1975-2020年人口密度POP栅格数据
    数据来源GHS-POP空间栅格产品(GHS-POP_GLOBE_R2023)描绘了人口的分布,表示为每个单元的人数。这个数据集描述了人口的分布和密度,以每个单元的人数表示,1975年-2020年,五年间隔,空间分辨率1000m.官网下载地址:https://human-settlement.emergency.copernicus.eu/download.php?ds=po......
  • CVE-2021-24762 复现
    一看是个wordpress,看了下版本6.0没洞,直接扔wpscan扫一下发现了个插件一搜发现perfect-survey在1.5.2之前都有洞,直接搜exp打.上官网找了个API重扫一遍,直接给出了CVE号!直接找个sqlmap的exp跑一下,注意第二个位置选n来设置cookiesqlmap-u"http://eci-2zeg18fce0yxpb7p......
  • 2020 ICPC 上海赛区
    赛时6题。第七题我写的没de出来(给队友跪了)xixike哥太强了有5题代码都是他写的(我只写了半题)ggxxdd哥也非常强特别会数学题。只有我什么都不会G,B都是队友切的签到,没看M:虽然会有重复的,但只要把前缀一起放到map里去就不会有任何重复的点因此可以打标记,这样就能建树了。然后就是......