广谈大湾网

OpenAI 曝新漏洞,一个手机号可以批量注册账号!

2023-5-9 10:06:23 20484 0

[复制链接]
半年华 未绑定微信 发表于 2023-5-9 10:06:23 |阅读模式

半年华 未绑定微信 楼主

2023-5-9 10:06:23

注册过ChatGPT API的朋友知道,新注册的用户,OpenAI免费赠送了5美元的使用额度。

一个账号5美元,100个账号可就是500美元啊,可以用很久了!

于是,有人就打起了坏主意,能不能找到OpenAI的bug,然后可以批量注册账号,薅OpenAI的羊毛呢!

1.jpg

最近看到一篇国外的文章,有安全团队发现了OpenAI的一个漏洞,基于这个漏洞,攻击者可以无限白嫖ChatGPT的免费额度,只要一个手机号就能注册很多账号。

漏洞详情
在讲述如何利用这个漏洞之前,让我先介绍一下ChatGPT的大致注册过程:

  • 注册一个电子邮件
  • 点击电子邮件激活链接
  • 输入电话号码
  • 输入通过短信接收到的验证代码

其中,电子邮件和电话号码都必须是唯一的,否则用户将被告知该账户已经存在,而且不会获得免费赠送的5美元资源

绕过验证
了解了这个过程之后,来深入研究一下OpenAI的注册过程中的API。

在使用Burp代理拦截流量后,注意以下请求:
2.png

来看服务器的响应:
3.png

看起来服务器并没有识别出来这点小伎俩,按照这个思路,我们还可以继续在手机号前面添加0,来创建更多的手机号的变种。

然而,零的数量可能是有限的,不可能无限制加啊,还有什么办法可以搞到更多账号呢?

这就该开源工具REcollapse派上用场了。这个工具可以用来进行输入Fuzz、绕过验证、发现Web应用程序和API中的问题。

经过一些初步测试,还真给他们发现了问题。在某些非ASCII字节上使用Unicode编码后,就能绕过手机号检查的逻辑,比如:

4.png


5.png

因为手机号前面添加了0或者非ASCII字符,OpenAI服务器收到后在检查是否有相同手机号的时候把它们当成了不同的手机号,而到后续要发送验证码的环节后,OpenAI又会清除前缀零和不需要的字节,以便能发送验证码。

这样的设计可能会导致大量甚至无限的不同值(例如,0123、00123、12\u000a3、001\u000a\u000b2\u000b3等)被视为唯一标识符,在使用时折叠为一个值(123),从而完全绕过初始验证机制。

想要解决这个问题,可以在处理手机号这个字段之前进行一个预处理,将其标准化,以便在后续的模块使用时保障它是相同的手机号字符串。

文章来源于JAVA技术迷,如有侵权请联系删除。本文仅代表作者观点,不代表大湾网的观点立场。
回复

使用道具 举报

:
高级会员
:
未填写
:
未填写
:
未填写

主题114

帖子116

积分885

图文推荐

  • 北林凉拌菜和卤味

    室友参加她师姐婚礼带回来的,沾沾喜气~东区一楼

  • 【珠海美食】铁锅炒鸡加白兰地

    这一天,开车去富华里的时候,途经看到【鸡神炒鸡

  • 6-9月夏季精选,日本10大避暑圣地

    炎热的夏季,能感受到清凉的旅游景点是绝佳的旅游

  • 雨季漫游指南:梅雨季避坑攻略 + 室内宝藏

    当潮湿的季风裹挟着细密雨丝掠过富士山的雪顶,当

  • 苏州比较适合度假旅行的10个小镇

    说起苏州,大家对古镇很熟悉,尤其是那些有名的老

  • 发布新帖

  • QQ客服

  • 微信公众号

  • 移动端

  • 返回顶部