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