漏洞概述 漏洞类型:存储型跨站脚本(Stored XSS) 漏洞位置:SIGA 应用的“Cadastro de Responsáveis”(负责人注册)功能 漏洞描述: - 在“Nome”(名称)和“Descrição”(描述)字段中,用户输入的内容未经过适当的编码或过滤,导致恶意 JavaScript 代码可以被注入并存储在数据库中。 - 当其他用户访问包含这些恶意代码的页面时,代码会在其浏览器中自动执行,从而可能窃取会话信息、执行任意操作等。 影响范围 影响用户:所有使用 SIGA 应用的用户,特别是那些能够访问“Cadastro de Responsáveis”功能并查看包含恶意代码的页面的用户。 潜在风险: - 会话劫持:攻击者可以通过执行恶意代码获取用户的会话 cookie,从而冒充用户进行操作。 - 数据泄露:攻击者可以访问和窃取存储在会话中的敏感信息。 - 权限提升:如果用户具有较高权限,攻击者可以利用这些权限执行更危险的操作。 修复方案 输入验证:对所有用户输入进行严格的验证,确保只接受预期的数据类型和格式。 输出编码:在将用户输入渲染到 HTML 页面之前,对其进行适当的编码(如 HTML 实体编码),以防止恶意代码的执行。 内容安全策略(CSP):实施内容安全策略,限制页面中可以执行的脚本来源,减少 XSS 攻击的风险。 过滤和转义:对输入内容进行过滤和转义,特别是针对特殊字符和 HTML 标签。 POC 代码 详细步骤 1. 访问漏洞功能: - 攻击者导航到 页面。 2. 插入 Payload: - 在“Nome”或“Descrição”字段中插入上述 POC 代码。 3. 持久化 Payload: - 提交表单,恶意代码将被存储在数据库中。 4. 执行 Payload: - 当其他用户访问 页面时,恶意代码将被执行。 5. 确认执行: - 执行结果将显示一个包含用户会话 cookie 的弹窗,证明漏洞存在。 影响总结 存储型 XSS:恶意代码被存储在数据库中,每次访问相关页面时都会执行。 上下文执行:代码在用户会话上下文中执行,具有用户的权限。 敏感数据暴露:可能导致会话 cookie 和其他敏感信息的泄露。 高级攻击基础:为更复杂的攻击提供了起点,如权限提升和数据操纵。