RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞

栏目: 软件资讯 · 发布时间: 3年前

内容简介:若依前后端分离版本 v3.2.1 已发布,更新日志: 阻止任意文件下载漏洞 代码生成支持上传控件 新增图片上传组件 调整默认首页 升级druid到最新版本v1.2.2 mapperLocations配置支持分隔符 权限信息调整 调整sql默认...

若依前后端分离版本 v3.2.1 已发布,更新日志

  • 阻止任意文件下载漏洞
  • 代码生成支持上传控件
  • 新增图片上传组件
  • 调整默认首页
  • 升级druid到最新版本v1.2.2
  • mapperLocations配置支持分隔符
  • 权限信息调整
  • 调整 sql 默认时间
  • 解决代码生成没有bit类型的问题
  • 升级pagehelper到最新版1.3.0
  • 任意文件下载漏洞 RuoYi <= v3.2.0

任意文件下载漏洞,正常的利用手段是下载服务器文件,如脚本代码,服务器配置或者是系统配置等等。可以利用../来逐层猜测路径。

网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞。

检测漏洞:CommonController.java/common/download/resource接口是否包含checkAllowDownload用于检查文件是否可下载,如果没有此方法需要修改,防止被下载关键信息。

解决方案:升级RuoYi版本到 >=3.2.1,或者重新添文件下载检查,防止任意文件下载。

/**
 * 本地资源通用下载
 */
@GetMapping("/common/download/resource")
public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
		throws Exception
{
	try
	{
		if (!FileUtils.checkAllowDownload(resource))
		{
			throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
		}
		// 本地资源路径
		String localPath = Global.getProfile();
		// 数据库资源地址
		String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX);
		// 下载名称
		String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
		response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
		FileUtils.setAttachmentResponseHeader(response, downloadName);
		FileUtils.writeBytes(downloadPath, response.getOutputStream());
	}
	catch (Exception e)
	{
		log.error("下载文件失败", e);
	}
}

/**
 * 检查文件是否可下载
 * 
 * @param resource 需要下载的文件
 * @return true 正常 false 非法
 */
public static boolean checkAllowDownload(String resource)
{
	// 禁止目录上跳级别
	if (StringUtils.contains(resource, ".."))
	{
		return false;
	}

	// 检查允许下载的文件规则
	if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource)))
	{
		return true;
	}

	// 不在允许下载的文件规则
	return false;
}

基于SpringBoot + Vue的前后端分离权限管理系统。

下载地址RuoYi-Vue

如需不分离应用,请移步 RuoYi (保持同步更新),如需其他版本,请移步 项目扩展 (不定时更新)

内置功能

  1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  3. 岗位管理:配置系统用户所属担任职务。
  4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
  5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  7. 参数管理:对系统动态配置常用参数。
  8. 通知公告:系统通知公告信息发布维护。
  9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  10. 登录日志:系统登录日志记录查询包含登录异常。
  11. 在线用户:当前系统中活跃用户状态监控。
  12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
  13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
  14. 系统接口:根据业务代码自动生成相关的api接口文档。
  15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
  16. 在线构建器:拖动表单元素生成相应的HTML代码。
  17. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。

在线体验

演示地址:http://vue.ruoyi.vip

文档地址:http://doc.ruoyi.vip

演示图

RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞 RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞
RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞 RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞
RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞 RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞
RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞 RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞
RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞 RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞
RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞 RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞
RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞 RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机组成:结构化方法

计算机组成:结构化方法

坦嫩鲍姆 / 刘卫东 / 人民邮电出版社 / 2006-1 / 65.00元

本书采用结构化方法来介绍计算机系统,书的内容完全建立在“计算机是由层次结构组成的,每层完成规定的功能”这一概念之上。作者对本版进行了彻底的更新,以反映当今最重要的计算机技术以及计算机组成和体系结构方面的最新进展。书中详细讨论了数字逻辑层、微体系结构层、指令系统层、操作系统层和汇编语言层,并涵盖了并行体系结构的内容,而且每一章结尾都配有丰富的习题。 本书适合作为计算机专业本科生计算机组......一起来看看 《计算机组成:结构化方法》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具