广谈大湾网

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

2023-5-9 10:06:23 20556 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

积分888

图文推荐

  • 零失败的小餐包,香甜柔软超好吃,外面买不

    今天分享这款餐包叫番茄小餐包,不是因为加了番

  • 鸡胸肉别再煎着吃了,只需一碗料汁,比烧鸡

    鸡胸肉别再煎着吃了, 葱油鸡丝,又香又入味,只

  • 茭白烩鱿鱼,鲜嫩脆爽、清爽美味

    今天分享一道茭白烩鱿鱼茭白脆嫩爽口、鱿鱼鲜嫩美

  • 解冻带鱼别光泡水里,记得多加一步,带鱼鲜

    带鱼的美味令人垂涎,下面为大家分享一道带鱼的

  • 广东传统特色风味小甜点,姜与牛奶能碰撞出

    姜撞奶,听名字觉得就挺有意思的,这是广东珠三角

  • 发布新帖

  • QQ客服

  • 微信公众号

  • 移动端

  • 返回顶部