Shiro的部署与试用

  1. internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base
  • 此时在pom.xml中删除devtools包引用解决,默认那个要求Java 9。

  • 之后会碰到一个warning

  1. //https://issues.apache.org/jira/browse/GROOVY-8339
  2. An illegal reflective access operation has occurred
  • 不用管也可以。

  • 需要数据库中有对应账号数据,否则可以运行而无法登陆。

  • 这篇教程里面是不涉及修改”记住密码”功能的。

  • SpringMVC相关配置方法见(注意 泄露加密方法 + 密钥是会被黑客攻击的!)https://blog.yoodb.com/yoodb/article/detail/296

  • SpringBoot相关配置方法见(注意 泄露加密方法 + 密钥是会被黑客攻击的!)

  1. [https://mrbird.cc/Spring-Boot-Shiro%20Remember-Me.html](https://mrbird.cc/Spring-Boot-Shiro%20Remember-Me.html)

Shiro的漏洞分析

  • http://blog.knownsec.com/2016/08/apache-shiro-java/

  • 看起来像是RememberMe功能存在反序列化问题,当时官方采用的是加密 + 加盐 + 加密钥的Cookie后在序列化/反序列化,对象Cookie存储在客户端本地,若密钥泄露的情况下,则会出现漏洞。

  • Java序列化后原文一般为 ac ed 00 05 打头。(二进制)

类似于这种的其他框架性语言还有哪些

  • 待补充

关键参数

  • 问题代码

  • shiroConfig.java

【20180926】SpringBoot   Shiro   偏漏洞研究 - 图1

  1. web/src/main/java/org/apache/shiro/web/mgt/DefaultWebSecurityManager.java

【20180926】SpringBoot   Shiro   偏漏洞研究 - 图2

参考资料