Shopware前端登录页面反射型XSS漏洞深度解析

本文详细分析了一个存在于Shopware电商平台前端登录页面的高风险反射型跨站脚本(XSS)漏洞。该漏洞由于对URL参数缺乏输入验证和过滤,导致攻击者可以注入恶意脚本,窃取用户会话令牌并执行管理员操作。

漏洞概述

该安全公告披露了一个存在于Shopware电商平台Storefront组件登录页面的反射型跨站脚本(XSS) 漏洞,被分配了唯一标识符 GHSA-6w82-v552-wjw2。漏洞的严重性等级为高危,CVSS v3.1基础评分为7.1

受影响的版本

漏洞影响Shopware及其Storefront组件的多个版本,具体如下:

  • shopware/shopware (Composer) 与 shopware/storefront (Composer):
    • 受影响版本:>= 6.4.6.0, < 6.6.10.10 以及 >= 6.7.0.0, < 6.7.5.1
    • 已修复版本:6.6.10.106.7.5.1

漏洞细节与影响

漏洞原理

登录页面的一个请求参数直接在其Twig模板中被渲染,没有经过任何额外的处理或输入验证。这使得攻击者可以通过URL参数直接向模板中注入代码。

由于一个敏感的Cookie未配置HttpOnly属性,且管理员JWT令牌存储在sessionStorage中,任何成功的XSS攻击都可能导致会话Cookie和管理员令牌被窃取。

攻击方式

攻击者可以构造恶意的URL链接,用于钓鱼攻击。漏洞涉及两个参数:

  1. waitTime 参数:缺乏适当的输入验证。

    • 测试用例/account/login?loginError=1&waitTime=<a%20href%3D"https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FPhishing">Here<%2Fa>
  2. errorSnippet 参数:存在相同问题。

    • 测试用例/account/login?loginError=1&errorSnippet=Reset%20your%20password%20%3Ca%20href%3D%22https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FPhishing%22%3Ehere%3C%2Fa%3E.

潜在危害

通过利用此XSS漏洞,恶意攻击者可以在受影响用户的会话上下文中,在其网络浏览器内执行有害操作,包括但不限于:

  • 获取用户会话令牌。
  • 执行管理员操作(当受影响用户是管理员时)。 这构成了较高的安全风险。

技术指标

  • CWE分类:CWE-79 - 在网页生成过程中对输入的不当中和(跨站脚本)
  • CVSS v3.1 向量AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:N
    • 攻击向量(Attack Vector):网络
    • 攻击复杂度(Attack Complexity):低
    • 所需权限(Privileges Required):无
    • 用户交互(User Interaction):需要
    • 影响范围(Scope):未改变
    • 机密性影响(Confidentiality Impact):低
    • 完整性影响(Integrity Impact):高
    • 可用性影响(Availability Impact):无

参考与致谢

  • 漏洞报告:由 NielDuysters 报告。
  • 修复提交:相关修复可参考GitHub提交 shopware/shopware@c9242c0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计