挖洞經(jīng)驗(yàn) | 價(jià)值6k$的星巴克官網(wǎng)賬戶劫持漏洞
本文分享的是作者通過(guò)測(cè)試星巴克官網(wǎng)時(shí),在其測(cè)試環(huán)境中發(fā)現(xiàn)的,利用IDOR越權(quán)方式實(shí)現(xiàn)的賬戶劫持漏洞,獲得了星巴克官方獎(jiǎng)勵(lì)$6000的獎(jiǎng)勵(lì)。
漏洞探測(cè)
當(dāng)我瀏覽到新加坡星巴克網(wǎng)站時(shí),偶然在其中發(fā)現(xiàn)了一個(gè)第三方網(wǎng)站,出于保密原因暫且叫他為example.com,隨著對(duì)該網(wǎng)站的深入探測(cè),我發(fā)現(xiàn)其路徑example.com/starbucks下的頁(yè)面和星巴克登錄網(wǎng)站card.starbucks.com.sg一模一樣:
此時(shí)我想到了兩種可能性:
- 當(dāng)前Web應(yīng)用程序是card.starbucks.com.sg的測(cè)試環(huán)境;
- 可能是忘記刪除的舊版測(cè)試環(huán)境。
這兩種可能性都會(huì)導(dǎo)致漏洞,但我也并不確定這里的漏洞是否會(huì)對(duì)星巴克網(wǎng)站的生產(chǎn)環(huán)境形成影響。于是,我在card.starbucks.com.sg網(wǎng)站創(chuàng)建了一個(gè)用戶,然后用該用戶在example.com/starbucks來(lái)進(jìn)行登錄測(cè)試,BINGO!竟然可以的!也就是說(shuō)example.com/starbucks和card.starbucks.com.sg采用了相同的用戶認(rèn)證機(jī)制,都能認(rèn)證星巴克注冊(cè)用戶。
漏洞利用
為此,我在example.com/starbucks頁(yè)面下發(fā)現(xiàn)了另一個(gè)路徑,該路徑發(fā)起的POST數(shù)據(jù)包中包含了注冊(cè)用戶的綁定郵箱:
email=hacker@hacker.com
基于賬戶劫持思路,為此,我在這里把綁定郵箱替換成受害者的,請(qǐng)求發(fā)出后,服務(wù)端的響應(yīng)內(nèi)容中只包含了受害者的部份信息。而且在更改密碼的請(qǐng)求中,由于無(wú)效的CSRF token,所以最終賬戶劫持的嘗試也沒(méi)成功。
繼續(xù)測(cè)試,我把包含受害者郵箱參數(shù),在example.com/starbucks中生成的PHPSESSID cookie復(fù)制到了card.starbucks.com.sg的請(qǐng)求數(shù)據(jù)包中,哦哇,請(qǐng)求發(fā)出后,竟然可以成功獲取到星巴克生產(chǎn)環(huán)境中受害者的個(gè)人信息,該請(qǐng)求中生成的有效CSRF token可以讓我有權(quán)更改受害者密碼,以此劫持了受害者賬戶。
漏洞影響
利用該漏洞不但可以看到其他用戶的個(gè)人信息,還能劫持受害者賬戶,而且如果受害者用戶賬戶中有累積積分,還可以通過(guò)移動(dòng)APP去消費(fèi)掉受害者的這些積分。
其它漏洞發(fā)現(xiàn)
我還在example.com上發(fā)現(xiàn)了其它兩個(gè)測(cè)試環(huán)境頁(yè)面,它們是:example.com/starbucks2和example.com/starbucks3,但是我在card.starbucks.com.sg注冊(cè)的賬戶都不能登錄該兩個(gè)測(cè)試頁(yè)面。另外,example.com/starbucks2頁(yè)面不能注冊(cè)新用戶,但example.com/starbucks3頁(yè)面可以注冊(cè)新用戶,這里就稍微有點(diǎn)亂了,但我盡量簡(jiǎn)單來(lái)說(shuō)。
我覺(jué)得example.com/starbucks2 和 example.com/starbucks3兩個(gè)測(cè)試環(huán)境頁(yè)面調(diào)用的都是測(cè)試用戶數(shù)據(jù)表,因此,在生產(chǎn)環(huán)境card.starbucks.com.sg中注冊(cè)的用戶是不能在該兩個(gè)測(cè)試環(huán)境中登錄的。
由于example.com/starbucks3頁(yè)面可以注冊(cè)新用戶,且該用戶可用來(lái)登錄example.com/starbucks2,但不能登錄card.starbucks.com.sg。然而,我從example.com/starbucks2請(qǐng)求包中復(fù)制的PHPSESSID cookie卻能有效應(yīng)用在card.starbucks.com.sg,因此,也就能間接使用該在example.com/starbucks3頁(yè)面注冊(cè)的新用戶。為此,我畫(huà)了一副以下漏洞利用邏輯圖:
- 用受害者郵箱在example.com/starbucks3上注冊(cè)新用戶;
- 用該注冊(cè)的受害者用戶登錄example.com/starbucks2;
- 復(fù)制第2步請(qǐng)求中的PHPSESSID cookie信息到生產(chǎn)環(huán)境網(wǎng)站card.starbucks.com.sg,進(jìn)行登錄,即能實(shí)現(xiàn)對(duì)受害者的賬戶劫持(如果該受害者郵箱在生產(chǎn)環(huán)境中有過(guò)用戶注冊(cè),這里一樣可以實(shí)現(xiàn)賬戶劫持)。
漏洞報(bào)送和處理進(jìn)程
- 5.17 - 漏洞報(bào)送
- 5.18 - 漏洞分類
- 5.20 - 星巴克獎(jiǎng)勵(lì)$4000
- 6.17 - 星巴克額外獎(jiǎng)勵(lì)$2000
參考來(lái)源:kamilonurozkaleli