部署在阿里云上的项目收到了阿里云发送的shiro漏洞
还记得在十月份凯哥发布过一篇修改若依系统编辑器的文章,然后为了方便大家浏览,凯哥就部署在服务器上了,结果,没想到最近收到了阿里云漏洞扫描通知:
如果不修改的话:对于长期存在安全隐患但未整改的网络资源,监管部门可能会下达行政处罚
根据扫描结果,搜索了下漏洞的证明(如下图):在项目中搜索,我去,还真是啊。
漏洞描述
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。
漏洞造成的影响
在配置了默认密钥的情况下,攻击者可以通过精心构造的 Payload 实现远程命令执行,从而进一步获取服务器权限。
安全建议
升级shiro至最新版本1.7.0并生成新的密钥替换,注意妥善保管密钥,防止泄漏。
利用官方提供的方法生成密钥:org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(),换key修复指南:
于是急忙的修改了shiro的版本号,重新生成了密钥生成规则。
解决方案
后面通过源码分析,发现了shiro有自己的随机生成秘钥的方法。既然找到的方法,那就好说了,按照源码的方式新写一个秘钥生成器:
public class GenerateCipherKey {
/**
* 随机生成秘钥,参考org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(int)
* @return
*/
public static byte[] generateNewKey() {
KeyGenerator kg;
try {
kg = KeyGenerator.getInstance("AES");
} catch (NoSuchAlgorithmException var5) {
//这里的msg可以任意随机输入
String msg = "kaigejavaXXnnOOdd";
throw new IllegalStateException(msg, var5);
}
kg.init(128);
SecretKey key = kg.generateKey();
byte[] encoded = key.getEncoded();
return encoded;
}
}
对于传统的xml配置项目修改方案:
在shiro的配置文件中,引入key的方法:
其中图中箭头的位置是自己项目类全路径的包名。
对于spring boot项目修改方案:
同样是修改shiro的配置文件,只是spring boot的方式不同了,使用的是就java 类的方式。修改如下:
项目已经重新部署了,可以访问了。同时已经提交到码云上了,欢迎之前下载的朋友更新。
获取最新项目源码及shiro漏洞报告==>
部署在阿里云上的项目收到了阿里云发送的shiro漏洞的更多相关文章
- IDEA上的项目托管到码云步骤
IDEA上的项目托管到码云步骤:1.安装Git2.idea上配置Git Setting-Version Control-Git 把git.exe改为安装的Git的执行路径如:D:\Prog ...
- git向码云上提交项目
git向码云上提交项目 设置账号名字和邮箱 $ git config --global user.name "注册时账号的名字" $ git config --global use ...
- github下载速度慢甚至多次失败,通过码云的导入功能导入github项目到码云上,然后再从码云下载
github下载速度慢甚至多次失败,通过码云的导入功能导入github项目到码云上,然后再从码云下载 参考 https://blog.csdn.net/kcx64/article/details/83 ...
- 在Eclipse 中下载 开源中国码云上的项目
功能:使用开源中国代码托管(码云)来托管代码,本地的使用Eclipse,该如何配置? 步骤: 1/ 在码云 上建一个工程,(为了访问托管工程的权限) 2/ 在eclipse中打开名字叫做“Git ...
- 云计算之路-阿里云上:愚人节被阿里云OCS愚
今天是愚人节,而我们却被阿里云OCS愚,很多地方的缓存一直不过期,造成很多页面中的数据一直不更新.这篇博文将向您分享我们这两天遇到的OCS问题. 阿里云OCS(Open Cache Service)是 ...
- 通过Canal将云上MySQL数据同步到华为云ES(CSS)中
背景: A部门想将mysql中多张表join成一个sql查询语句,然后将结果同步到es中供搜索使用 环境信息: 源端mysql在阿里云上,有公网ip 目标端es在华为云上,三节点 操作步骤与目的: 配 ...
- mac 上使用 idea 上传项目代码到阿里云git上
1.Idea 打开需要上传的项目 2.先在本地创建一个git仓库 VCS --> Import into Version Control --> Create Git reposito ...
- 阿里云OSS同城冗余存储正式商业化,提供云上同城容灾能力
近日,阿里云正式发布OSS同城冗余存储产品.这是国内目前提供同城多AZ冗余部署能力覆盖最广的云上对象存储产品,可以实现云存储的同城双活,满足企业级客户对于“发生机房级灾难事件时数据不丢失,业务不中断” ...
- 远程登录阿里云上的MySQL
近期对云和server之类的感兴趣,想要将自己的数据什么的保存到远端server.研究了阿里云和百度云.今天算是有点进步吧. 我在阿里云上申请了个免费的云server(ECS),非常可惜仅仅能用5天. ...
- 把本地git仓库中的项目引入到码云上
一.安装git软件和TortoiseGit客户端(git需配置环境变量,但安装时已经配置好,无需考虑) 二.生成公钥和私钥(建立与码云的连接) 三.在码云上新建项目(建议在组织的基础上) 四.在码 ...
随机推荐
- 可重入锁思想,设计MQ迁移方案
如果你的MQ消息要从Kafka切换到RocketMQ且不停机,怎么做?在让这个MQ消息调用第三方发奖接口,但无幂等字段又怎么处理?今天小傅哥就给大家分享一个关于MQ消息在这样的场景中的处理手段. 这是 ...
- 福利来了!MoneyPrinterPlus可以自动配置环境和自动运行了
之前开源了MoneyPrinterPlus,可以实现批量混剪视频,一键生成视频和自动发布视频的功能. 但是经常会看到小伙伴在安装过程中遇到很多问题.所以这篇文章的目的就是告诉大家怎么使用MoneyPr ...
- 【算法】用c#实现计算方法中的经典降幂优化策略,减少计算复杂度
对于给定的数组[x1,x2,x3,-,xn],计算幂的累积:x1^(x2^(x3^(-^xn))的最后一位(十进制)数字. 例如,对于数组[3,4,2],您的代码应该返回1,因为3^(4^2)=3^1 ...
- 咬文嚼图式的介绍二叉树、B树/B-树
前言 因为本人天资愚钝,所以总喜欢将抽象化的事务具象化表达.对于各类眼花缭乱的树,只需要认知到它们只是一种数据结构,类似数组,切片,列表,映射等这些耳熟能详的词汇.对于一个数据结构而言,无非就是增删改 ...
- 基于django(爱抚宠物) 小程序设计和实现(源码+LW+部署讲解)
感兴趣的可以先收藏起来,大家在毕设选题,项目以及论文编写等相关问题都可以给我加好友咨询 系统介绍: 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用 ...
- oeasy教您玩转vim - 2 - # 使用帮助
回忆上节课内容 更新和运行 vim 进入和退出 vim 存活了下来 从中我们知道 vim 有两种模式:正常模式(Normal mode)和命令行模式 (Command-Line mode) 为了您能更 ...
- 领域驱动设计(DDD)分层架构的三种模式
模式一:四层架构 1.User Interface为用户界面层(或表示层),负责向用户显示信息和解释用户命令.这里指的用户可以是另一个计算机系统,不一定是使用用户界面的人.2.Application为 ...
- Jmeter参数化4-数据库数据引入
1. 下载jmeter依赖的mysql驱动包 jmeter要连接mysql数据库,首先得下载mysql驱动包.执行"select version()"查看数据库版本 mysql历史 ...
- 【Layui】11 滑块 Slider
文档地址: https://www.layui.com/demo/slider.html 基本滑块: <fieldset class="layui-elem-field layui-f ...
- VScode调试C++工程
相关: Linux环境下配置vscode的C/C++编译环境 本文主要参考: https://zhuanlan.zhihu.com/p/385276301 ====================== ...