四时宝库

程序员的知识宝库

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: # 设置密钥,

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());,防止注入绕过。


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加密字符串。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接