影响版本
Apache Shiro < 1.5.3
环境搭建
下载https://github.com/l3yx/springboot-shiro
权限配置如下,其中/admin下的路由需要登录才能访问
@BeanShiroFilterFactoryBean 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";
}
* :匹配一个或者多个任意的字符。
** :匹配零个或者多个目录。
访问 /test/admin/page,他会302要求登录
访问 /;/test/admin/page , 就能直接绕过Shiro权限验证,访问到/admin路由中的信息
修复建议
升级到最新版
官方已在新版本中修复了该漏洞
下载链接
https://github.com/apache/shiro/releases
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论