前言
很久以前对于Shiro这个洞,都是基于URLDNS来爆破key的,但实际利用场景中,大部分是不出网的,后来出了一个新的检测key的方式,但一直只知道是通过SimplePrincipalCollection
这个类来判断的
- 正确的key就不会回显rememberMe=deleteMe,
- 错误的key就会回显rememberMe=deleteMe,
但原理未知,今天就来分析一下。
返回rememberMe=deleteMe的几种情况
key不正确
跟踪一下Shiro解密的逻辑,在AbstractRememberMeManager#convertBytesToPrincipals方法。
首先跟进解密的方法decrypt中。其中会调用cipherService.decrypt
方法。