挖洞经验 | Snapchat不当输入验证漏洞导致的任意构造短信发送
字数 1041 2025-08-18 11:39:23

Snapchat 不当输入验证漏洞分析及利用教学

漏洞概述

本教学文档详细分析Snapchat网站存在的一个不当输入验证漏洞,该漏洞允许攻击者构造任意短信内容发送给受害者手机号码。漏洞最终获得了$1000的奖励。

漏洞发现过程

1. 目标定位

漏洞存在于Snapchat的官方网站:https://whatis.snapchat.com/。该网站介绍了Snapchat的功能和使用方法,在页面底部提供了两种APP下载方式:

  • 直接点击下载
  • 输入手机号码获取短信下载链接

2. 正常功能测试

研究人员首先进行正常功能测试:

  1. 输入自己的手机号码
  2. 点击"Send Link"按钮
  3. 观察后端请求和短信内容

此时系统会向app.snapchat.com发起一个HTTP POST请求:

https://app.snapchat.com/stories_everywhere/download_sms?phone_number=2133198570&country_code=US&cid=whatis

3. 关键参数发现

在请求中,cid参数及其值whatis引起了注意,因为:

  • 收到的短信内容中包含cid参数的值
  • 这表明cid参数可能直接影响短信内容

漏洞验证

1. 参数篡改测试

研究人员修改HTTP POST请求中的cid参数值为自定义内容:

cid=TES+HACKED+1337+LOL+HacKerOne.com

2. 结果验证

重放修改后的请求后,手机收到的短信内容确实包含了自定义的cid值:

TES HACKED 1337 LOL HacKerOne.com - Get Snapchat: [下载链接]

且链接点击后能有效跳转。

漏洞原理分析

该漏洞属于不当输入验证漏洞,具体表现为:

  1. 后端系统未对cid参数进行有效过滤或验证
  2. 直接将用户可控的cid参数值拼接到短信内容中
  3. 缺乏对短信内容的净化处理

漏洞利用场景

攻击者可利用此漏洞:

  1. 向任意手机号码发送包含恶意内容的短信
  2. 构造钓鱼链接诱导用户点击
  3. 传播恶意软件下载链接
  4. 进行社会工程学攻击

漏洞修复方案

Snapchat最终修复方案:

  • 从短信回复机制中完全移除cid和其他相关参数
  • 对短信内容进行严格过滤和验证

教学总结

测试方法论

  1. 公共功能测试:优先测试网站的公共可访问功能
  2. 参数篡改:对请求中的每个参数进行篡改测试
  3. 响应观察:仔细比对修改前后的系统响应差异

漏洞挖掘技巧

  1. 关注用户输入点:特别是涉及短信、邮件等通信功能的输入点
  2. 追踪参数流向:观察用户提供的参数如何影响系统输出
  3. 尝试边界值:测试特殊字符、超长字符串等异常输入

经验启示

  1. 保持测试动力:看似简单的功能可能隐藏严重漏洞
  2. 全面测试思维:不放过任何一个可控制的参数
  3. 及时报告:发现漏洞后应及时向厂商报告

参考资源

原始漏洞报告来源:securitybreached
本文基于FreeBuf编译整理

Snapchat 不当输入验证漏洞分析及利用教学 漏洞概述 本教学文档详细分析Snapchat网站存在的一个不当输入验证漏洞,该漏洞允许攻击者构造任意短信内容发送给受害者手机号码。漏洞最终获得了$1000的奖励。 漏洞发现过程 1. 目标定位 漏洞存在于Snapchat的官方网站: https://whatis.snapchat.com/ 。该网站介绍了Snapchat的功能和使用方法,在页面底部提供了两种APP下载方式: 直接点击下载 输入手机号码获取短信下载链接 2. 正常功能测试 研究人员首先进行正常功能测试: 输入自己的手机号码 点击"Send Link"按钮 观察后端请求和短信内容 此时系统会向 app.snapchat.com 发起一个HTTP POST请求: 3. 关键参数发现 在请求中, cid 参数及其值 whatis 引起了注意,因为: 收到的短信内容中包含 cid 参数的值 这表明 cid 参数可能直接影响短信内容 漏洞验证 1. 参数篡改测试 研究人员修改HTTP POST请求中的 cid 参数值为自定义内容: 2. 结果验证 重放修改后的请求后,手机收到的短信内容确实包含了自定义的 cid 值: 且链接点击后能有效跳转。 漏洞原理分析 该漏洞属于 不当输入验证 漏洞,具体表现为: 后端系统未对 cid 参数进行有效过滤或验证 直接将用户可控的 cid 参数值拼接到短信内容中 缺乏对短信内容的净化处理 漏洞利用场景 攻击者可利用此漏洞: 向任意手机号码发送包含恶意内容的短信 构造钓鱼链接诱导用户点击 传播恶意软件下载链接 进行社会工程学攻击 漏洞修复方案 Snapchat最终修复方案: 从短信回复机制中完全移除 cid 和其他相关参数 对短信内容进行严格过滤和验证 教学总结 测试方法论 公共功能测试 :优先测试网站的公共可访问功能 参数篡改 :对请求中的每个参数进行篡改测试 响应观察 :仔细比对修改前后的系统响应差异 漏洞挖掘技巧 关注用户输入点 :特别是涉及短信、邮件等通信功能的输入点 追踪参数流向 :观察用户提供的参数如何影响系统输出 尝试边界值 :测试特殊字符、超长字符串等异常输入 经验启示 保持测试动力 :看似简单的功能可能隐藏严重漏洞 全面测试思维 :不放过任何一个可控制的参数 及时报告 :发现漏洞后应及时向厂商报告 参考资源 原始漏洞报告来源:securitybreached 本文基于FreeBuf编译整理