RuoYi 4.5.1 发布,阻止任意文件下载漏洞

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

内容简介:若依管理系统 v4.5.1 已发布,更新日志: 阻止任意文件下载漏洞 升级shiro到最新版1.7.0 阻止权限绕过漏洞 升级druid到最新版本v1.2.2 新增表格行触发事件(onCheck、onUncheck、onCheckAll、onUncheckAll) 修复...

若依管理系统 v4.5.1 已发布,更新日志:

  • 阻止任意文件下载漏洞
  • 升级shiro到最新版1.7.0 阻止权限绕过漏洞
  • 升级druid到最新版本v1.2.2
  • 新增表格行触发事件(onCheck、onUncheck、onCheckAll、onUncheckAll)
  • 修复多页签关闭非当前选项出现空白问题
  • 代码生成预览支持高亮显示
  • mapperLocations配置支持分隔符
  • 权限信息调整
  • 个人中心头像和上传头像增加默认图片
  • 全局配置类保持和其他应用命名相同
  • 任意文件下载漏洞 RuoYi <= v4.5.0

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

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

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

解决方案:升级RuoYi版本到 >=4.5.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;
}

内置功能

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://www.ruoyi.vip

RuoYi 4.5.1 发布,阻止任意文件下载漏洞 RuoYi 4.5.1 发布,阻止任意文件下载漏洞
RuoYi 4.5.1 发布,阻止任意文件下载漏洞 RuoYi 4.5.1 发布,阻止任意文件下载漏洞
RuoYi 4.5.1 发布,阻止任意文件下载漏洞 RuoYi 4.5.1 发布,阻止任意文件下载漏洞
RuoYi 4.5.1 发布,阻止任意文件下载漏洞 RuoYi 4.5.1 发布,阻止任意文件下载漏洞
RuoYi 4.5.1 发布,阻止任意文件下载漏洞 RuoYi 4.5.1 发布,阻止任意文件下载漏洞
RuoYi 4.5.1 发布,阻止任意文件下载漏洞 RuoYi 4.5.1 发布,阻止任意文件下载漏洞
RuoYi 4.5.1 发布,阻止任意文件下载漏洞 RuoYi 4.5.1 发布,阻止任意文件下载漏洞
RuoYi 4.5.1 发布,阻止任意文件下载漏洞 RuoYi 4.5.1 发布,阻止任意文件下载漏洞
RuoYi 4.5.1 发布,阻止任意文件下载漏洞 RuoYi 4.5.1 发布,阻止任意文件下载漏洞
RuoYi 4.5.1 发布,阻止任意文件下载漏洞 RuoYi 4.5.1 发布,阻止任意文件下载漏洞

以上所述就是小编给大家介绍的《RuoYi 4.5.1 发布,阻止任意文件下载漏洞》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Python语言程序设计

Python语言程序设计

[美]梁勇(Lang Y. D.) / 李娜 / 机械工业出版社 / 2015-4 / 79.00元

本书采用“问题驱动”、“基础先行”和“实例和实践相结合”的方式,讲述如何使用Python语言进行程序设计。本书首先介绍Python程序设计的基本概念,接着介绍面向对象程序设计方法,最后介绍算法与数据结构方面的内容。为了帮助学生更好地掌握相关知识,本书每章都包括以下模块:学习目标,引言,关键点,检查点,问题,本章总结,测试题,编程题,注意、提示和警告。 本书可以作为高等院校计算机及相关专业Py......一起来看看 《Python语言程序设计》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具