漏洞概述 漏洞名称:通知公告模块存储型XSS漏洞 #320 漏洞类型:存储型XSS(跨站脚本攻击) 漏洞背景:在 中, 被排除在XSS过滤之外,导致攻击者可以注入恶意JavaScript代码。 漏洞表现:拥有 权限的用户可以在公告内容中注入任意JavaScript代码,所有查看该公告的用户(包括其他管理员)的浏览器都会执行该恶意脚本。 影响范围 环境:RuoYi v4.8.3,默认配置 权限要求:拥有 权限的用户 影响用户:所有查看该公告的用户(包括其他管理员) 修复方案 涉及文件: - (第144行)—— XSS过滤器排除配置 - (第75-83行)—— 公告保存,无HTML消毒 - (第46-49行)—— th:utext 渲染 修复建议: 在 的 和 方法中,对 进行HTML消毒后再存储。XSS过滤器的排除规则可以保留(SummerNote需要提交HTML),关键是服务端要过滤危险标签。 允许常见格式化标签(加粗、斜体、列表、图片等),但会移除 、事件处理器 、 等危险元素。 POC代码 危害验证(XSS + CSRF组合利用) 结果 浏览器弹出 对话框,证实JavaScript被执行。 在系统管理 - 用户管理中可以看到 用户已被创建。