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

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

内容简介:若依管理系统 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 发布,阻止任意文件下载漏洞》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Java和Android开发学习指南(第二版)

Java和Android开发学习指南(第二版)

Budi Kurniawan / 李强 / 人民邮电出版社 / 2016-3 / 69.00元

本书是Java语言学习指南,特别针对使用Java进行Android应用程序开发展开了详细介绍。 全书共50章,分为两大部分。第1部分(第1章到第22章)主要介绍Java语言基础知识及其功能特性。第2部分(第23章到第50章)主要介绍如何有效地构建Android应用程序。 本书适合任何想要学习Java语言的读者阅读,特别适合想要成为Android应用程序开发人员的读者学习参考。一起来看看 《Java和Android开发学习指南(第二版)》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

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

HSV CMYK互换工具