OpenAI 曝新漏洞,一個(gè)手機(jī)號(hào)可以批量注冊(cè)賬號(hào)!
大家好,我是軒轅。
注冊(cè)過(guò)ChatGPT API的朋友知道,新注冊(cè)的用戶(hù),OpenAI免費(fèi)贈(zèng)送了5美元的使用額度。
一個(gè)賬號(hào)5美元,100個(gè)賬號(hào)可就是500美元啊,可以用很久了!
于是,有人就打起了壞主意,能不能找到OpenAI的bug,然后可以批量注冊(cè)賬號(hào),薅OpenAI的羊毛呢!
最近看到一篇國(guó)外的文章,有安全團(tuán)隊(duì)發(fā)現(xiàn)了OpenAI的一個(gè)漏洞,基于這個(gè)漏洞,攻擊者可以無(wú)限白嫖ChatGPT的免費(fèi)額度,只要一個(gè)手機(jī)號(hào)就能注冊(cè)很多賬號(hào)。
漏洞詳情
在講述如何利用這個(gè)漏洞之前,讓我先介紹一下ChatGPT的大致注冊(cè)過(guò)程:
- 注冊(cè)一個(gè)電子郵件
- 點(diǎn)擊電子郵件激活鏈接
- 輸入電話號(hào)碼
- 輸入通過(guò)短信接收到的驗(yàn)證代碼
其中,電子郵件和電話號(hào)碼都必須是唯一的,否則用戶(hù)將被告知該賬戶(hù)已經(jīng)存在,而且不會(huì)獲得免費(fèi)贈(zèng)送的5美元資源。
繞過(guò)驗(yàn)證
了解了這個(gè)過(guò)程之后,來(lái)深入研究一下OpenAI的注冊(cè)過(guò)程中的API。
在使用Burp代理攔截流量后,注意以下請(qǐng)求:
這個(gè)安全團(tuán)隊(duì)最初的想法是對(duì)手機(jī)號(hào)略微修改一下,讓它看起來(lái)像是一個(gè)新的號(hào)碼,比如添加國(guó)家代碼(00351):
來(lái)看服務(wù)器的響應(yīng):
看起來(lái)服務(wù)器并沒(méi)有識(shí)別出來(lái)這點(diǎn)小伎倆,按照這個(gè)思路,我們還可以繼續(xù)在手機(jī)號(hào)前面添加0,來(lái)創(chuàng)建更多的手機(jī)號(hào)的變種。
然而,零的數(shù)量可能是有限的,不可能無(wú)限制加啊,還有什么辦法可以搞到更多賬號(hào)呢?
這就該開(kāi)源工具REcollapse派上用場(chǎng)了。這個(gè)工具可以用來(lái)進(jìn)行輸入Fuzz、繞過(guò)驗(yàn)證、發(fā)現(xiàn)Web應(yīng)用程序和API中的問(wèn)題。
經(jīng)過(guò)一些初步測(cè)試,還真給他們發(fā)現(xiàn)了問(wèn)題。在某些非ASCII字節(jié)上使用Unicode編碼后,就能繞過(guò)手機(jī)號(hào)檢查的邏輯,比如:
因?yàn)槭謾C(jī)號(hào)前面添加了0或者非ASCII字符,OpenAI服務(wù)器收到后在檢查是否有相同手機(jī)號(hào)的時(shí)候把它們當(dāng)成了不同的手機(jī)號(hào),而到后續(xù)要發(fā)送驗(yàn)證碼的環(huán)節(jié)后,OpenAI又會(huì)清除前綴零和不需要的字節(jié),以便能發(fā)送驗(yàn)證碼。
這樣的設(shè)計(jì)可能會(huì)導(dǎo)致大量甚至無(wú)限的不同值(例如,0123、00123、12\u000a3、001\u000a\u000b2\u000b3等)被視為唯一標(biāo)識(shí)符,在使用時(shí)折疊為一個(gè)值(123),從而完全繞過(guò)初始驗(yàn)證機(jī)制。
想要解決這個(gè)問(wèn)題,可以在處理手機(jī)號(hào)這個(gè)字段之前進(jìn)行一個(gè)預(yù)處理,將其標(biāo)準(zhǔn)化,以便在后續(xù)的模塊使用時(shí)保障它是相同的手機(jī)號(hào)字符串。
漏洞披露
安全團(tuán)隊(duì)將該漏洞反饋給OpenAI后,收到了OpenAI的反饋:
再次感謝您提供詳細(xì)的報(bào)告。我們已驗(yàn)證了這個(gè)發(fā)現(xiàn)并修復(fù)了問(wèn)題。
我們感謝您向我們報(bào)告此事,并遵守OpenAI的協(xié)調(diào)漏洞披露政策 (https://openai.com/policies/coordinated-vulnerability-disclosure-policy)。
下面是整個(gè)事件的時(shí)間軸:
- 2022年12月2日 - 向OpenAI發(fā)送報(bào)告
- 2022年12月6日 - OpenAI回復(fù)稱(chēng)正在調(diào)查此問(wèn)題
- 2023年2月28日 - 我們請(qǐng)求有關(guān)此問(wèn)題的更新
- 2023年3月1日 - OpenAI回復(fù)稱(chēng)問(wèn)題已解決
- 2023年5月4日 - 全面披露
這個(gè)漏洞如今既然已經(jīng)公開(kāi)了,OpenAI自然是已經(jīng)修復(fù)好了,看到標(biāo)題點(diǎn)進(jìn)來(lái)以為有羊毛可薅的朋友們想法可就落空了!
不過(guò)軒轅這里還有羊毛可以薅~
上面是我自己搭建的ChatGPT網(wǎng)站,無(wú)需賬號(hào),無(wú)需魔法,打開(kāi)就能用,電腦手機(jī)隨開(kāi)隨用,不用花錢(qián)也能每天白嫖5次,歡迎大家來(lái)薅羊毛,戳左下角的“閱讀原文”也能一鍵打開(kāi)!