漏洞概述 漏洞类型: 存储型DOM XSS (Stored DOM XSS) / 持久化负载注入 (Persistent Payload Injection)。 漏洞描述: 应用程序未能正确清理“系统设置 - 公司信息” (System Settings - Company Information) 中的用户控制输入。多个管理配置字段接受攻击者控制的输入,这些输入在服务器端存储,随后在不进行适当输出编码的情况下在公共页面上渲染。 受影响字段: 包括公司名称、标语、电话、手机、邮箱、Google Maps iframe链接、公司Logo及其他媒体相关字段。 关键特征: 漏洞仅影响公共页面(如主登陆页),管理仪表板中不存在执行。 影响范围 受影响功能: 系统设置配置、公共页面渲染(主登陆页及其他公共页面)、公司信息的存储与检索。 攻击场景: 1. 攻击者将恶意JavaScript负载注入到一个或多个公司信息字段中。 2. 应用程序存储这些值,未进行清理或编码。 3. 负载仅在公共页面上渲染(包括主登陆页)。 4. 负载在浏览器上下文中自动执行,针对未认证访问者和认证用户。 潜在危害: 持久化存储型XSS。 在访问者浏览器中执行任意JavaScript。 若Cookie未加密,可能导致任意账户接管 (Full Account Takeover)。 平台范围的公共前端受损,任何与受影响页面交互的用户完全受损。 修复方案 代码层面: 永远不要在PHP或其他任何sink中使用 或任何 风格的JS。即使输入流不清楚,它们仍代表现实世界的危险。 防御措施: 尽可能多地做 HTML 编码,并且总是做清理 (Sanitization)。 安全策略: 应用 CSP (Content Security Policy), HttpOnly, SameSite 等安全策略,以减少XSS及通过XSS进行的升级CSRF的严重性。 POC代码