Shiro 权限绕过漏洞复现 CVE-2020-11989

发布于 2024-08-25 08:33:44 字数 3296 浏览 7 评论 0

影响范围

  • Apache Shiro < 1.5.3
  • Spring 框架中只使用 Shiro 鉴权

环境搭建

git clone https://github.com/l3yx/springboot-shiro.git
  • 将项目导入 IDEA 中,本地演示环境为 Mac OS ,配置 Maven : /usr/local/Cellar/maven/3.6.3_1/libexec/conf/settings.xml

  • 添加本地镜像:

    <mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>
    <!-- 下面的两个中央仓库都是 maven 软件内置的,服务于整个互联网,由 Maven 团队自己维护,里面存储了非常全的 jar 包,包含了世界上大部分流行的开源项目构件 -->
    <!-- 中央仓库 1 -->
    <mirror>
      <id>repo1</id>
      <mirrorOf>central</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://repo1.maven.org/maven2/</url>
    </mirror>
    <!-- 中央仓库 2 -->
    <mirror>
      <id>repo2</id>
      <mirrorOf>central</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://repo2.maven.org/maven2/</url>
    </mirror>

  • 更改 IDEA 中的 Maven home directoryUser settings file 配置:

  • 生成 war 包:

  • 将打包好的 war 包部署于 Tomcat 。该漏洞成功利用存在下面两个条件
    • 应用不能部署在根目录,也就是需要 context-pathserver.servlet.context-path=/shiro ,如果为根目录则 context-path 为空,就会被 CVE-2020-1957 的 patch 将 URL 格式化,值得注意的是若 Shiro 版本小于 1.5.2 的话那么该条件就不需要。
    • Spring 控制器中没有另外的权限校验代码

漏洞环境的权限配置如下,其中 /admin 下的路由需要登录才能访问:

@Bean
ShiroFilterFactoryBean shiroFilterFactoryBean(){
   ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
   bean.setSecurityManager(securityManager());
   bean.setLoginUrl("/login");
   bean.setSuccessUrl("/index");
   bean.setUnauthorizedUrl("/unauthorizedurl");
   Map<String, String> map = new LinkedHashMap<>();
   map.put("/doLogin", "anon");
   map.put("/admin/*", "authc");
   bean.setFilterChainDefinitionMap(map);
   return  bean;
}
---
@GetMapping("/admin/page")
public String admin() {
   return "admin page";
}

漏洞复现

如果直接访问 /shiro/admin/page ,会返回 302 跳转要求登录

直接访问 /;/test/admin/page , 就能直接绕过 Shiro 权限验证,访问到 /admin 路由中的信息

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

咿呀咿呀哟

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

忆伤

文章 0 评论 0

眼泪也成诗

文章 0 评论 0

zangqw

文章 0 评论 0

旧伤慢歌

文章 0 评论 0

qq_GlP2oV

文章 0 评论 0

旧时模样

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文