挖洞经验 | 一个简单的icloud.com存储型XSS
字数 1082 2025-08-15 21:33:54

iCloud.com 存储型XSS漏洞分析与复现教程

漏洞概述

本教程详细分析印度安全工程师在苹果iCloud.com网站发现的存储型跨站脚本(XSS)漏洞,该漏洞获得了苹果公司$5000的漏洞赏金。

漏洞基本信息

  • 漏洞类型:存储型跨站脚本(Stored XSS)
  • 影响网站:iCloud.com (Pages和Keynote服务)
  • 漏洞奖励:$5000
  • 发现时间:2020年8月
  • 公开时间:2021年2月

漏洞发现过程

  1. 测试者选择iCloud.com作为测试目标
  2. 尝试了多种漏洞类型(CSRF、IDOR、业务逻辑漏洞)未果
  3. 转向XSS测试
  4. 在用户可输入区域尝试插入XSS Payload
  5. 发现Pages和Keynote服务的文件名输入处存在漏洞

漏洞复现步骤

前置条件

  • 有效的iCloud账户
  • 访问权限:https://www.icloud.com/pages/ 或 https://www.icloud.com/keynotes

复现步骤

  1. 创建恶意文件

    • 打开Pages或Keynote服务
    • 创建新文稿或演示文件
    • 使用以下XSS Payload作为文件名:
      ">
      
  2. 触发漏洞

    • 将含有恶意文件名的文件发送给协作用户
    • 接收用户打开文件并进行修改后保存
    • 接收用户通过以下路径查看历史版本:
      Settings >> Browser All Versions
      
  3. 漏洞触发

    • 当查看历史版本时,文件名中的XSS Payload会被执行

技术分析

  • 漏洞成因:文件名在历史版本查看界面未正确过滤或转义

  • Payload分析

    ">
    
    • "> 用于闭合前端的HTML标签
    • `` 构造一个当图片加载失败时执行JavaScript的标签
  • 触发条件

    • 需要文件被修改并保存
    • 需要查看历史版本

漏洞影响

  • 潜在危害

    • 窃取用户会话cookie
    • 执行任意JavaScript代码
    • 可能的账户劫持
  • 利用场景

    • 攻击者创建恶意文件并共享给目标用户
    • 当目标用户查看文件历史版本时触发XSS

时间线

  • 2020.8.7:漏洞上报苹果公司
  • 2020.8.8:苹果公司复现漏洞
  • 2020.10.9:苹果公司发放$5000奖励

防御建议

对于开发者:

  • 对所有用户输入进行适当的过滤和转义
  • 实施内容安全策略(CSP)
  • 对文件名等元数据进行严格验证

对于用户:

  • 谨慎打开来自不可信来源的共享文件
  • 定期清理不需要的共享文件

总结

这个案例展示了即使是在苹果这样的大型科技公司的产品中,也可能存在简单的XSS漏洞。该漏洞的特殊性在于需要特定的用户交互(修改文件并查看历史版本)才能触发,这可能是它之前未被发现的原因。漏洞的$5000奖励也反映了苹果公司对安全问题的重视程度。

iCloud.com 存储型XSS漏洞分析与复现教程 漏洞概述 本教程详细分析印度安全工程师在苹果iCloud.com网站发现的存储型跨站脚本(XSS)漏洞,该漏洞获得了苹果公司$5000的漏洞赏金。 漏洞基本信息 漏洞类型 :存储型跨站脚本(Stored XSS) 影响网站 :iCloud.com (Pages和Keynote服务) 漏洞奖励 :$5000 发现时间 :2020年8月 公开时间 :2021年2月 漏洞发现过程 测试者选择iCloud.com作为测试目标 尝试了多种漏洞类型(CSRF、IDOR、业务逻辑漏洞)未果 转向XSS测试 在用户可输入区域尝试插入XSS Payload 发现Pages和Keynote服务的文件名输入处存在漏洞 漏洞复现步骤 前置条件 有效的iCloud账户 访问权限:https://www.icloud.com/pages/ 或 https://www.icloud.com/keynotes 复现步骤 创建恶意文件 打开Pages或Keynote服务 创建新文稿或演示文件 使用以下XSS Payload作为文件名: 触发漏洞 将含有恶意文件名的文件发送给协作用户 接收用户打开文件并进行修改后保存 接收用户通过以下路径查看历史版本: 漏洞触发 当查看历史版本时,文件名中的XSS Payload会被执行 技术分析 漏洞成因 :文件名在历史版本查看界面未正确过滤或转义 Payload分析 : "> 用于闭合前端的HTML标签 `` 构造一个当图片加载失败时执行JavaScript的标签 触发条件 : 需要文件被修改并保存 需要查看历史版本 漏洞影响 潜在危害 : 窃取用户会话cookie 执行任意JavaScript代码 可能的账户劫持 利用场景 : 攻击者创建恶意文件并共享给目标用户 当目标用户查看文件历史版本时触发XSS 时间线 2020.8.7 :漏洞上报苹果公司 2020.8.8 :苹果公司复现漏洞 2020.10.9 :苹果公司发放$5000奖励 防御建议 对于开发者: 对所有用户输入进行适当的过滤和转义 实施内容安全策略(CSP) 对文件名等元数据进行严格验证 对于用户: 谨慎打开来自不可信来源的共享文件 定期清理不需要的共享文件 总结 这个案例展示了即使是在苹果这样的大型科技公司的产品中,也可能存在简单的XSS漏洞。该漏洞的特殊性在于需要特定的用户交互(修改文件并查看历史版本)才能触发,这可能是它之前未被发现的原因。漏洞的$5000奖励也反映了苹果公司对安全问题的重视程度。