您现在的位置是:首页 > 文章详情

【重要通知】使用 OneBlog(DBlog)的用户,请注意!!!

日期:2021-04-09点击:721

使用 OneBlog(DBlog)的用户,请注意!!!

各位正在使用 OneBlog[1](DBlog)的用户,请注意,本篇文章非常重要,请一定要认真读完!

OneBlog 中使用了 Shiro 权限管理框架,版本为:

 <shiro.spring.version>1.4.0</shiro.spring.version>

该版本针对 CookieRememberMeManager 存在一个反序列化的漏洞:

•原文:https://issues.apache.org/jira/browse/SHIRO-550•相关模拟:https://blog.csdn.net/Dothwinds/article/details/105244830

OneBlog 是我18年的时候开发出的一款博客系统,当时我在开发 OneBlog 时其实已经考虑到了这一点(当时没有考虑太深),因此给项目重新生成了一个 Key,并且想当然的在源码中给出了注释,如下:

但由于当时太天真,没有考虑到用户群体的复杂性,想当然的以为用户在用的时候一定会看源码(实际情况,除了专门研究源码的人,没有多少使用者会深究你的代码),因此也没有在文档中说明。

今日收到一位从事安全研究行业的朋友的提示,所以紧急修复一版:

在此给各位造成的不便,深表歉意。

升级方式:

• 如果本地代码未做过多修改,可以直接 git pull 拉取最新代码• 如果你已经做了不少定制开发,可以按照以下步骤操作:

在 blog-admin/src/main/java/com/zyd/blog/core/config/ShiroConfig.java 配置类中,增加以下内容:

 /** * 解决 shiro 反序列化漏洞 * * https://blog.csdn.net/qq_34775355/article/details/106643678 */public static class GenerateCipherKey {  /** * 随机生成秘钥,参考org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(int) * * @return byte[] */ public static byte[] generateNewKey() { KeyGenerator kg; try { kg = KeyGenerator.getInstance("AES"); } catch (NoSuchAlgorithmException var5) { String msg = "Unable to acquire AES algorithm. This is required to function."; throw new IllegalStateException(msg, var5); }  kg.init(128); SecretKey key = kg.generateKey(); return key.getEncoded(); }}

然后修改 rememberMeManager 方法:

 /** * cookie管理对象;记住我功能 * * @return */public CookieRememberMeManager rememberMeManager() { CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager(); cookieRememberMeManager.setCookie(rememberMeCookie()); // 主要是这个地方,使用上面定制的 key 生成器生成随机 key cookieRememberMeManager.setCipherKey(GenerateCipherKey.generateNewKey()); return cookieRememberMeManager;}

或者直接 copy ShiroConfig.java[2] 中的代码覆盖你本地的相关代码。

最后,最好将 shiro 升级到最新版本,项目根目录下的 pom.xml 文件中,升级 shiro 相关的依赖:

 <shiro.spring.version>1.7.1</shiro.spring.version>

PS: 呼吁各位使用 shiro 框架的开发者或者开源项目作者,自行检阅自己的项目是否也存在这个问题,如果存在,请及时修复!

引用链接

[1] OneBlog: https://gitee.com/yadong.zhang/DBlog
[2] ShiroConfig.java: https://gitee.com/yadong.zhang/DBlog/blob/master/blog-admin/src/main/java/com/zyd/blog/core/config/ShiroConfig.java

原文链接:https://www.oschina.net/news/136708/oneblog-vulnerability-fix
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章