免费获取订阅服务的黑客技术解析

本文详细介绍了如何通过操纵API请求绕过订阅付费系统,包括手机验证码绕过、订阅信息注入等技术细节,展示了完整的漏洞利用过程和安全建议。

免费获取订阅服务的黑客技术解析

背景

目标应用是一个娱乐平台,提供付费和免费视频内容,用户需要购买订阅才能观看付费内容。该应用只允许特定国家的手机号注册,也可以通过社交媒体账号登录,但仍需手机验证。

挑战

由于没有目标国家的手机号,且不使用社交媒体登录(仍需手机验证),我无法创建账户。

思路与过程

绕过手机验证

首先尝试用任意手机号注册。注册时需要验证6位验证码,但可以通过操纵验证请求的响应来绕过验证:

  • 输入随机手机号和6位验证码
  • 拦截验证请求
  • 修改响应代码以绕过验证

成功绕过验证后,就可以使用任意手机号创建账户,并可以添加邮箱地址(尽管没有直接的邮箱注册选项)。

绕过订阅付费

登录后遇到订阅弹窗。由于使用Stripe支付网关,直接绕过支付很困难,因此转向攻击平台API来激活订阅。

通过抓取API端点,发现了提供订阅计划信息的端点。分析后发现,虽然在现有账户中添加订阅不可行(受支付网关限制),但在注册请求中有一个有趣的字段:"cunsumerSubscription": null

于是创建新账户时,在注册请求中注入从订阅信息API获取的订阅数据:

1
2
3
4
5
6
7
8
{
  // ... 其他注册字段
  "cunsumerSubscription": {
    "durationDays": 365,
    "subscriptionStartDateTime": "2022-01-01T00:00:00Z",
    "subscriptionEndDateTime": "2023-01-01T00:00:00Z"
  }
}

通过精心构造上述请求,可以创建已附加订阅的账户,绕过付费墙。更妙的是,通过修改durationDayssubscriptionStartDateTimesubscriptionEndDateTime值,可以延长订阅期限,甚至创建无限期订阅。

总结

通过深入研究看似无用的功能,成功绕过了付费订阅系统。这种方法不仅绕过了订阅验证,还能创建带有无限订阅的账户。

给黑客的建议

  • 从多个角度审视目标
  • 寻找能提供信息的API端点
  • 学会在没有API文档的情况下构建请求
  • 不要因错误而气馁

给开发者的建议

  • 不要通过API泄露关键信息(如密钥、订阅信息等)
  • 不要让客户通过API更新不必要的信息
  • 正确验证OTP

“有时候,黑客攻击只是某人在某件事上花费了比常人预期更多的时间”

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计