乐于分享
好东西不私藏

OpenAI 被钻大漏洞!低价代充 ChatGPT Plus 的真相!

OpenAI 被钻大漏洞!低价代充 ChatGPT Plus 的真相!

大家有没有刷到过闲*鱼、Tele*gram上的GPT Plus代充?20-50元就能开通一个月,比官方定价145元便宜一半还多,甚至还有人宣称能白嫖永久会员。

很多人以为是捡漏,实则是利用OpenAI的技术漏洞套利。前几日X平台用户K*发布长推文,把这套代充背后的完整技术链路扒得底朝天;同日,博主阿*也爆料,Telegram上已出现能白嫖ChatGPT Plus/Pro的机器人

今天就用通俗的语言拆解这个漏洞没有复杂术语,不管你是普通用户还是开发者,都能看懂灰*产是怎么空手套白狼的,以及背后的风险到底有多大。

一、漏洞核心:OpenAI犯了个低级错误

一句话点破关键:

OpenAI校验收据时,只看收据真假,不看这张收据是谁买的

用大白话解释就是:你用Apple ID85元买了一张ChatGPT Plus的内购收据,只要这张收据是真的,再拿到BCD任意一个ChatGPT账号的auth token(相当于账号临时凭证),就能给这些账号全部开通Plus会员。

这就像你拿着别人的购物小票去柜台领东西,柜员只核对小票真伪,根本不查你是不是小票上的购买人——漏洞的核心,就是缺失了收据归属的校验环节。

技术层面更直白:合法收据 + 有效auth token = 任意账号开通PlusApple IDChatGPT账号的绑定关系、对应关系,OpenAI全不校验。

二、正常内购vs漏洞利用:差了关键一步先看iOSChatGPT Plus的正常订阅流程,一共5步,环环相扣:

1.用户在iPhone上点击ChatGPT Plus订阅并付款;

2.App Store扣钱后,生成一张购买收据receipt),写入手机本地沙盒;

3.ChatGPT App自动拾取这张收据,连同当前登录账号的auth token一起,发给OpenAI服务器;

4.OpenAI服务器向Apple验证收据真伪;

5.校验通过,给这张auth token对应的账号开通Plus权益。

而漏洞,就出在第4步到第5步之间。

正常情况下,OpenAI除了验收据真假,还应该校验这张收据对应的Apple ID,和提交请求的ChatGPT账号是否有关联;但实际操作中,他们直接跳过了这一步——只要收据是真的、token是有效的,不管两者有没有关系,直接开通权益。正常三端订阅管理都交给第三方API处理,这本是正常开发逻辑,但OpenAI在这条链路上偷了懒,压根没想过有人会卡这个环节。

三、完整操作链路:四步拆解

第一步:获取低价区Apple ID(成本85元)

ChatGPT Plus的定价是分地区的,土耳其区标价499里拉/月,折合人民币约85元;而国内iOS定价高达145元,这差价本身就是第一层套利空间。

操作很简单:注册或购买一个土耳其区Apple ID,充入足够的礼品卡余额,用于购买Plus订阅、获取收据。

第二步:拦截收据,阻止自动提交

iPhone上打开ChatGPT App,不登录目标代充账号(可以登临时号,也可以不登录)。

关键操作来了:在内购付款前,配置网络拦截(比如代理),阻止ChatGPT App把收据自动发送给OpenAI服务器。

此时,App Store会正常扣款,Apple也会把收据写入手机本地沙盒appStoreReceiptURL,但因为被拦截,这张收据不会被自动提交,而是留在手机里,等待手动提取。

第三步:导出收据(3种方法,无需越狱也能操作)

K*列出了3种主流导出方法,其中方法A门槛最低,无需越狱,普通人也能操作:

方法 A:端点本地映射(无需越狱)

用 DNS 劫持或本地代理,将 ChatGPT App 发往 OpenAI 的请求重定向到本地服务器。请求体中本身就携带 Base64 编码的收据,到本地后直接保存。

工具链:mitmproxyCharles Proxy、自建 HTTPS 代理 + 自签证书。

Kai 原话:“不用越狱,门槛低得令人发指。”

方法 B:越狱设备 + Hook(iOS)

在越狱设备上使用 Frida 或 Flex,直接 hook StoreKit 框架,截取 SKPaymentTransaction 的 transactionReceipt,或读取 appStoreReceiptURL 对应的收据文件。

方法 C:Android + Xposed Hook

Android 路径使用 Xposed 框架 hook 对应支付回调,逻辑与 iOS 类似。

第四步:API补单,把收据打到任意账号

收据到手后,直接向 OpenAI 的订阅接口发送请求

请求示例(简化版,便于理解):

POST https://ios.chat.openai.com/backend-api/mobile/apple/post_receiptContent-Type: application/jsonAuthorization: Bearer <目标账号的 auth token>{  "receipt""<Base64 编码的 iOS 收据>",  "platform""ios",  "product_id""com.openai.chatgptplus",  "device_info": {    "model""iPhone14,2",    "os_version""17.0",    "timezone""Asia/Shanghai"  }}
注意这里的关键点Authorization 头使用的是目标用户的 auth token,而不是购买者的。这就是漏洞的核心利用方式——用 A 的收据给 B 开通 Plus。

四、套利逻辑:重放攻击的经济模型

为什么闲鱼上的代充能卖到20-50/月?核心就是一票多充的重放攻击,经济模型简单又暴利:

环节
成本/收入
单张土耳其区收据
~85 元人民币
代充售价(闲鱼/TG)
20-50 元/账号
如果收据可重放 N 次
第 2 单起边际成本 ≈ 0
毛利
第 2 单起几乎 100%

操作闭环也很简单:买家提供自己的ChatGPT auth token,卖家用提前准备好的收据调用API,给买家开通Plus;买家收到权益后,立刻修改密码,使token失效;而卖家则拿着同一张收据,继续给下一个买家代充,循环往复,一本万利。

更极端的是,Kai还提到,有灰产用日本、英国地区节点+抓包拦截,能0元获取收据,相当于彻底无成本套利——推测是利用了这些地区的免费试用政策或支付流程差异。

五、OpenAI到底偷了哪3个懒?

这个漏洞能被利用,本质是OpenAI的服务端设计存在3个致命缺失,说偷懒一点不为过:

1.缺失1:不校验收据与账号的归属关系

Apple 的 Server-to-Server 验票接口(verifyReceipt 或 App Store Server API v2)返回的数据中包含 original_transaction_id,可以唯一标识一笔购买。正常做法是:

收据验证通过后:IF original_transaction_id 已绑定其他平台账号 → 拒绝ELSE → 绑定当前请求账号,发放权益

OpenAI 的实现显然跳过了这一步。

2.缺失2:没有重放拦截

同一个original_transaction_id(同一张收据),被多个不同的auth token提交时,OpenAI没有去重逻辑,允许反复开通权益,这就是典型的收据重放漏洞

3.缺失3:没有请求特征风控

批量代充有明显的异常特征:

短时间内大量不同token用同一个交易IDIP/设备指纹高度集中、设备信息千篇一律(比如全是iPhone14,2——这些异常,OpenAI的风控系统完全没识别到。

总结:

正常设计:  验真伪 → 验归属 → 验重放 → 风控拦截 → 发放权益OpenAI 实际:验真伪 → (跳过)→ (跳过)→ (跳过)→ 发放权益

六、同类漏洞的行业对比

这类 iOS 内购收据校验缺陷并非 OpenAI 独有。在移动支付生态中,类似问题有过多次先例:

平台/场景
漏洞类型
核心原因
早期手游
收据重放刷道具
服务端未记录 transaction_id 去重
SaaS 订阅服务
跨账号恢复购买
Restore Purchases
 未绑定平台账号
流媒体平台
家庭共享滥用
共享组权益边界未隔离
OpenAI (本案)收据重放 + 跨账号补单未校验 Apple ID 归属 + 未做 transaction_id 去重

Apple 自身的 StoreKit 2 和 App Store Server API v2 已经提供了 JWSTransaction 签名验证、original_transaction_id 绑定、Server Notification V2 等完善的校验基础设施。问题不在 Apple 侧,而在 OpenAI 的服务端没有用好这些能力。


六、怎么修复

1. 收据 → 账号强绑定

# 伪代码defprocess_receipt(auth_token, receipt_data):    verification = verify_with_apple(receipt_data)    txn_id = verification.original_transaction_id    existing_binding = db.query(txn_id)if existing_binding and existing_binding.account_id != auth_token.account_id:raise Error("此收据已绑定其他账号")    db.bind(txn_id, auth_token.account_id)    grant_plus(auth_token.account_id)

2. transaction_id 全局去重

维护一张 (original_transaction_id, account_id) 的映射表,写入即锁定,拒绝同一 transaction_id 的二次绑定。

3. 请求级风控

  • 同一 receipt 被不同 auth token 提交 → 立即拒绝并告警
  • 同一 IP/设备指纹短时间内大量补单 → 触发人工审计
  • device_info
     字段与实际请求环境不符 → 标记风险

4. 迁移到 App Store Server API v2

使用 Apple 的 JWS 签名事务替代传统的 verifyReceipt,获得更细粒度的事务状态和撤销通知。


最后想说

这个漏洞,本质是信息差催生的灰产套利——技术不难,但大多数人不知道,少数人靠着这个赚得盆满钵满,甚至有人包装成付费教程收割智商税。

对普通人来说,最稳妥的方式还是通过官方渠道开通ChatGPT Plus,不要为了几十块的便宜,冒着账号泄露、权益被撤销的风险找代充;对开发者来说,这也是一个警示——iOS内购校验,少一步都可能酿成大错。

目前,OpenAI大概率已经在紧急修复这个漏洞,那些低价代充渠道,或许,没几天就和谐掉。与其投机取巧,不如踏实使用官方服务,才是最省心、最安全的选择。

免责声明:仅供学习交流!

参考来源:K*原帖、阿*相关推文