内容简介:若依管理系统 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 发布,阻止任意文件下载漏洞》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 关于 ThinkAdmin V6 任意文件下载漏洞修复说明
- 漏洞预警 | D-Link多型号路由器任意文件下载漏洞(CVE-2018-10822)
- 宜家PDF下载过程本地文件包含漏洞披露
- RuoYi-Vue 3.2.1 发布,阻止任意文件下载漏洞
- 犀牛(RhinOS)CMS 3.X任意文件下载漏洞(CVE-2018-18760)
- 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开发学习指南(第二版)》 这本书的介绍吧!