内容简介:若依前后端分离版本 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
内置功能
- 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
- 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
- 岗位管理:配置系统用户所属担任职务。
- 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
- 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
- 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
- 参数管理:对系统动态配置常用参数。
- 通知公告:系统通知公告信息发布维护。
- 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
- 登录日志:系统登录日志记录查询包含登录异常。
- 在线用户:当前系统中活跃用户状态监控。
- 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
- 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
- 系统接口:根据业务代码自动生成相关的api接口文档。
- 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
- 在线构建器:拖动表单元素生成相应的HTML代码。
- 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
在线体验
演示地址:http://vue.ruoyi.vip
文档地址:http://doc.ruoyi.vip
演示图
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 关于 ThinkAdmin V6 任意文件下载漏洞修复说明
- RuoYi 4.5.1 发布,阻止任意文件下载漏洞
- 漏洞预警 | D-Link多型号路由器任意文件下载漏洞(CVE-2018-10822)
- 宜家PDF下载过程本地文件包含漏洞披露
- 犀牛(RhinOS)CMS 3.X任意文件下载漏洞(CVE-2018-18760)
- Android原生下载(下篇)多文件下载+多线程下载
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。