关键信息总结 漏洞概述 漏洞类型: 多重存储型跨站脚本(XSS)攻击 严重性: 高 CVE编号: CVE-2015-3879, CVE-115 CVSS评分: 6.4 (中等) 受影响版本: OpenWGA Admin Client 11.0.0 及其之前版本,以及 Apache Tomcat 8.0.21 版本 报告者: Mike Sola, Mandiant Group 影响范围 影响组件: - 管理员表单中的接受和后期渲染自定义字段 - 显示存储名称、标题、标签和描述的列表和详细视图 - 将存储值注入HTML属性、URL或脚本上下文的任何UI元素,且未进行编码 潜在影响: - 存储型XSS导致受害者的浏览器中任意脚本执行 - 盗取会话/账户接管查看受保护页面的管理员 - 跨站请求伪造(CSRF) - UI资源和数据窃取来自Admin Client - 潜在的服务器妥协如果与管理员功能或已知的路径端点链接 技术细节 用户控制的值被保存并插入到DOM中,没有适当的上下文特定编码。 在受影响的视图中,值似乎通过使用raw innerHTML或模板绑定直接插入HTML结构。 因为相同的存储值在不同的上下文中接收,一个有效的负载在一个上下文中有效,在另一个上下文中可能无效(例如,属性与文本)。 利用证明 使用低权限用户创建带有恶意payload的标签或描述。 以管理员身份登录并打开显示列表或预览存储值的页面。 当页面呈现存储内容时观察客户端侧执行。 安全分析 根本原因: 缺乏对存储的用户控制值的上下文感知输出编码。 为什么严重: 漏洞存在直到该值被收集或删除,并触发每个视图由特权用户。 相关弱点: CWE-79 和 CWE-116。 缓解措施 短期缓解: - 应用上下文特定编码在每个渲染点。 - HTML转义模板编码与 , , , , 。 - HTML属性绑定编码引号和特殊字符,从不将不受信任的字符串连接到事件处理程序。 - 如果绝对需要,避免直接在 URL中呈现不受信任的部分。 - 部署严格的Content Security Policy来减少可利用性,包括阻止内联脚本在所有Web页面上。 长期修复: - 在模板引擎中集中编码使用安全编码库(如OWASP Java Encoder)。 - 确保模板和组件默认为转义输出,仅在安全HTML中选择禁用。 - 添加服务器端验证以拒绝包含可执行标记的输入(应为纯文本)。 - 添加单元和集成测试覆盖转义在HTML属性和URL上下文中。 时间线 2015-06-08: 初始发现 2015-06-12: 厂商初始响应 2015-06-15: 公开披露