转载

RuoYi 4.3.1 发布,请及时更换默认秘钥

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

  1. 国家信息安全漏洞(防止命令执行漏洞,请务必保持cipherKey密钥唯一性)
  2. 升级shiro到最新版1.5.3 阻止权限绕过漏洞
  3. 修改验证码在使用后清除,防止多次使用
  4. 检查字符支持小数点&降级改成异常提醒
  5. openOptions函数中加入自定义maxmin属性
  6. 支持openOptions方法最大化
  7. 支持openOptions方法多个按钮回调
  8. 新增isLinkage支持页签与菜单联动
  9. 修改代码生成导入表结构出现异常页面不提醒问题
  10. 优化用户头像发生错误,则显示一个默认头像
  11. Excel导出支持字典类型
  • 命令执行漏洞  RuoYi <= v4.3.0

若依管理系统使用了Apache Shiro,Shiro 提供了记住我(RememberMe)的功能,下次访问时无需再登录即可访问。系统将密钥硬编码在代码里,且在官方文档中并没有强调修改该密钥,导致框架使用者大多数都使用了默认密钥。攻击者可以构造一个恶意的对象,并且对其序列化、AES加密、base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞,进而在目标机器上执行任意命令。

检测漏洞: ShiroConfig.java 是否包含  fCq+/xW488hMTCD+cmJ3aQ== ,如果是使用的默认密钥则需要修改,防止被执行命令攻击。

解决方案:升级版本到 >=v.4.3.1 ,并且重新生成一个新的秘钥替换 cipherKey ,保证唯一且不要泄漏。

# Shiro
shiro:
  cookie:
    # 设置密钥,务必保持唯一性(生成方式,直接拷贝到main运行即可)KeyGenerator keygen = KeyGenerator.getInstance("AES"); SecretKey deskey = keygen.generateKey(); System.out.println(Base64.encodeToString(deskey.getEncoded()));
    cipherKey: zSyK5Kp6PZAAjlT+eeNMlg==
// 直接拷贝到main运行即可生成一个Base64唯一字符串
KeyGenerator keygen = KeyGenerator.getInstance("AES");
SecretKey deskey = keygen.generateKey();
System.out.println(Base64.encodeToString(deskey.getEncoded()));
  • SQL注入攻击  RuoYi <= v3.2.0

若依管理系统使用了PageHelper,PageHelper提供了排序(Order by)的功能,前端直接传参完成排序。系统没有做字符检查,导致存在被注入的风险,最终造成数据库中存储的隐私信息全部泄漏。

检测漏洞: BaseController.java 是否包含  String orderBy = pageDomain.getOrderBy(); ,如果没有字符检查需要修改,防止被执行注入攻击。

解决方案:升级版本到 >=v.3.2.0 ,或者重新添加字符检查 String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); ,防止注入绕过。

package com.ruoyi.common.utils.sql;

import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.StringUtils;

/**
 * sql操作工具类
 * 
 * @author ruoyi
 */
public class SqlUtil
{
    /**
     * 仅支持字母、数字、下划线、空格、逗号、小数点(支持多个字段排序)
     */
    public static String SQL_PATTERN = "[a-zA-Z0-9_// //,//.]+";

    /**
     * 检查字符,防止注入绕过
     */
    public static String escapeOrderBySql(String value)
    {
        if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value))
        {
            throw new BaseException("参数不符合规范,不能进行查询");
        }
        return value;
    }

    /**
     * 验证 order by 语法是否符合规范
     */
    public static boolean isValidOrderBySql(String value)
    {
        return value.matches(SQL_PATTERN);
    }
}
  • Shiro阻止权限绕过漏洞  RuoYi <= v4.3.0

Shiro < 1.5.2 版本存在一处权限绕过漏洞,当受影响版本的Shiro框架结合Spring dynamic controllers使用时,未经授权的远程攻击者可以通过精心构造的请求包进行权限绕过,可能造成鉴权系统失效以及后台功能暴露。

检测漏洞: pom.xml Shiro <=1.5.2 则版本存在漏洞。

解决方案:升级版本到 >=1.5.3

  • Fastjson高危漏洞  RuoYi <= v4.2.0

Fastjson < 1.2.68 版本存在一处反序列化漏洞,主要为autoType开关绕过的反序列化漏洞利用,恶意攻击者可以通过该漏洞绕过autoType限制实现远程代码执行攻击,从而获取目标系统管理权限,建议尽快更新漏洞修复版本或采用临时缓解措施加固系统。

检测漏洞: pom.xml Fastjson <=1.2.68 则版本存在漏洞。

解决方案:升级版本到 >=1.2.70

注意

若依平台的默认口令 admin/admin123,请大家在线上环境一定要修改超级管理员的密码。

SysPasswordService.encryptPassword(String username, String password, String salt)

直接到main运行此方法,填充账号密码及盐(保证唯一),生成md5加密字符串。

内置功能

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.3.1 发布,请及时更换默认秘钥 RuoYi 4.3.1 发布,请及时更换默认秘钥
RuoYi 4.3.1 发布,请及时更换默认秘钥 RuoYi 4.3.1 发布,请及时更换默认秘钥
RuoYi 4.3.1 发布,请及时更换默认秘钥 RuoYi 4.3.1 发布,请及时更换默认秘钥
RuoYi 4.3.1 发布,请及时更换默认秘钥 RuoYi 4.3.1 发布,请及时更换默认秘钥
RuoYi 4.3.1 发布,请及时更换默认秘钥 RuoYi 4.3.1 发布,请及时更换默认秘钥
RuoYi 4.3.1 发布,请及时更换默认秘钥 RuoYi 4.3.1 发布,请及时更换默认秘钥
RuoYi 4.3.1 发布,请及时更换默认秘钥 RuoYi 4.3.1 发布,请及时更换默认秘钥
RuoYi 4.3.1 发布,请及时更换默认秘钥 RuoYi 4.3.1 发布,请及时更换默认秘钥
RuoYi 4.3.1 发布,请及时更换默认秘钥 RuoYi 4.3.1 发布,请及时更换默认秘钥
RuoYi 4.3.1 发布,请及时更换默认秘钥 RuoYi 4.3.1 发布,请及时更换默认秘钥
原文  https://www.oschina.net/news/116938/ruoyi-4-3-1-released
正文到此结束
Loading...