pache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架
直观、易用,同时也能提供健壮的安全性。
Apache Shiro < 1.4.2 版本中cookie值rememberMe通过AES-128-CBC模式加密,容易受到Padding Oracle攻击。攻击者可以通过以下步骤完成攻击:
1、登录Shiro网站,获取持久化cookie中rememberMe字段的值;
2、通过ysoserial反序列漏洞利用工具生成攻击payload作为plaintext;
3、使用rememberMe值作为prefix进行Padding Oracle攻击,加密payload的plaintext得到rememberMe攻击字符串;
4、使用rememberMe攻击字符串重新请求网站,进行反序列化攻击,最终导致远程任意命令执行。
在Apache Shiro 1.5.2以前的版本中,在使用Spring动态控制器时,攻击者通过构造`..;`
这样的跳转,可以绕过Shiro中对目录的权限限制。
## 漏洞复现
直接请求管理页面`/admin/`,无法访问,将会被重定向到登录页面:
![](1.png)
构造恶意请求`/xxx/..;/admin/`,即可绕过权限校验,访问到管理页面: