1.漏洞描述
Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
在Apache Shiro 1.5.2以前的版本中,在使用Spring动态控制器时,攻击者通过构造恶意Payload,可以绕过Shiro中对目录的权限限制。
2.影响版本
Apache Shiro < 1.5.2
3.漏洞简单分析
请求/xxxxx/..;/admin
,在shiro中经过处理变为/xxxxx/..
,与过滤器/xxxxx/**
规则进行匹配通过校验,成功转向后方的Spring Boot。
恶意请求/xxxxx/..;/admin
通过Shiro的校验后,传递到Spring Boot中进行解析,根据Controller设置的路由选择对应Servlet
,最终形成了对/admin
这个Servlet
的未授权访问,再返回给攻击者。
4.漏洞复现
4.1 环境搭建
使用vulnhub进行搭建https://github.com/vulhub/vulhub
docker-compose up -d
4.2 访问靶场页面
4.3 靶场Login登陆页面
4.4 尝试访问admin路径时,302跳转到login登陆页面
4.5 构造恶意payload,进行权限绕过,越权访问admin管理页面,发现返回码200,成功访问到管理页面
http://192.168.233.134:8080/xxx/..;/admin/