當前位置:
首頁 > 新聞 > 挖洞經驗|雅虎小企業服務平台Luminate身份認證漏洞

挖洞經驗|雅虎小企業服務平台Luminate身份認證漏洞

對內容管理系統的開發來說,一個重要和關鍵的步驟就是賬戶的身份認證實現。身份認證功能可以管理用戶登錄行為和會話,作出有效的登錄訪問控制。通常,這種認證功能一般由用戶名和密碼來實現,但在實際應用場景中,某些重要的內容管理系統仍然存在嚴重的身份認證漏洞。比如我測試的雅虎小企業平台Luminate。



Luminate:前身為圖片廣告公司,後被雅虎於2014年9月收購,與雅虎小企業服務平台整合,共同推動雅虎廣告和小企業客戶業務。

忘記密碼功能


在我晚間例行參與的漏洞眾測項目中,我決定研究研究Luminate的密碼忘記處理功能。果然,他們還有一個重置用戶密碼的方法:



該方法的基本流程如下:


首先,用戶向雅虎伺服器提交郵箱地址,告知伺服器自己忘記密碼:

POST /forgotpassword HTTP/1.1
Host: login.luminate.com
ontent-Type: application/x-www-form-urlencoded
Content-Length: 861
Connection: close
Upgrade-Insecure-Requests: 1

email=example@example.com

伺服器將根據提交請求的用戶創建一個一次性令牌,並發往用戶郵箱:

https://login.luminate.com/passwordreset?sign=TMaJJnAjigfnprxqbcfnu
BK8eJmJL2PHFByAA8OblfyHdZvxhXkeTmo5G_V1TNabJHUmSR9OSeYAnzm-yAlKbUfCYL
sCQtrZnZF2IxCotLh_VEn7Px6nVTA3Sm_fF9t490t_x9-t1xKcVqRPLOgQGSHb3wXYBev
sypDblPoO1c4

用戶將使用這個一次性令牌驗證自己身份,並進行密碼重置操作:


POST /passwordreset HTTP/1.1


Host: login.luminate.com


Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8

Accept-Language: en-US,en;q=0.5


Content-Type: application/x-www-form-urlencoded


Content-Length: 463


onnection: close


Upgrade-Insecure-Requests: 1


password=password&cpassword=password&uuid=

6491c80b-2850-4d9c-9061-73a6122b3dca

&sign=TMaJJnAjigfnprxqbcfnuBK8eJmJL2PHFByAA8OblfyHdZvxhXkeTmo5G_V1TNabJHUmSR9OSeYAnzm-yAlKbUfCYLsCQtrZnZF2IxCotLh_VEn7Px6nVTA3Sm_fF9t490t_x9-t1xKcVqRPLOgQGTiD-OCPPqBlpAWpi4yXgz0&email=example@example.com


實驗


這個密碼重置方法非常有趣,因為它包含了其它一些沒必要的額外參數。在以上流程第二步中,為了排除利用數據猜測發起的密碼重置攻擊,伺服器根據用戶郵箱地址生成了一串安全密鑰的sign參數。嚴格意義上來說,該sign參數是密碼重置的唯一必要參數,其它參數只是系統輔助數據。


在以上流程第三步中,可以看到,在實際的密碼重置要求中,用戶竟然可以修改「

email

」和「

uuid

」參數,這是非常有意思的地方,因為它可能與用戶身份認證相關。


隨著一點點的研究深入,我發現修改email參數根本無濟於事,它只是起到了一個直觀的提示作用。



那麼,「uuid」參數是什麼呢?再次勾起了我的興趣。如果sign參數是必須的,那麼這個獨特的用戶uuid參數又是什麼作用呢?從編程開發的角度來看,我覺得開發者在超出常人想像設計系統時,可能會利用sign參數識別並獲取數據,把這些數據存儲在hidden隱藏欄位中,之後,再對這些數據進行進一步的解析驗證。


利用發現的問題進行攻擊測試


根據以上的假設和實驗可知,uuid是與用戶賬戶ID關聯的參數。如果該參數可以利用的話,我想那麼不需要與sign參數配對,就能用其它人的用戶ID進行密碼重置。


為了驗證這種攻擊猜測,我利用測試賬號「attacker@attacker.com」進行密碼重置信息提交,其產生了一個UUID:1231c32b-2850-4e9c-9061-42k3022b3dcd;另一個測試賬號為我自己的samwcurry@gmail.com,產生的UUID為:6491c80b-2850-4d9c-9061-73a6122b3dca。


當把「attacker@attacker.com」產生的UUID替換成我自己賬號samwcurry@gmail.com生成的UUID後,按照以上重置流程操作,利用BurpSuite向伺服器提交修改後的POST請求,最終samwcurry@gmail.com賬號對應的密碼竟然以賬號attacker@attacker.com身份被成功重置了,GOD:


問題總結起來是這樣的:uuid是與每個用戶賬戶關聯的認證參數,在密碼重置請求提交時可以被修改,密碼重置操作時與sign參數無關。


漏洞利用思路


回到文章一開始,用戶名密碼是身份驗證的重要方式,當然,掌握了密碼就能控制賬戶。而uuid又與賬戶密碼重置相關,當然,換句話說,如果知曉uuid,也就能控制賬戶。假設的攻擊場景如下:



雖然uuid值獲取存在難度,但這種攻擊場景也能說明雅虎小企業平台存在的身份認證漏洞。一旦攻擊者獲取了uuid,就可以利用這種攻擊進行反覆密碼重置攻擊,直到完全接管控制賬戶。


漏洞報送時間表



2017年6月14日 – 向雅虎漏洞初報


2017年6月14日 – 雅虎方面進行漏洞驗證分類


2017年6月15日 – 漏洞修復


2017年6月25日 – 公布漏洞,等待賞金。


該漏洞利用存在一定前提,文中表達思路僅供測試參考。


*參考來源:samcurry,freebuf小編clouds編譯,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

劇透Black Hat 2017將要發布的8款安全工具
短小精幹的Unix類後門Tiny shell的使用與分析
ShadowBrokers訂閱服務全面「升級」,並宣稱將揭露某神秘NSA前員工的身份

TAG:FreeBuf |

您可能感興趣

思科Elastic Services Controller服務埠存在身份繞過漏洞,請儘快升級更新
Serena Williams 和身份政治
Identity Server 4-Hybrid Flow-MVC客戶端身份驗證
DarkHydrus:使用Phishery開源工具竊取身份憑證
Facebook或將收購身份證驗證軟體公司Confirm
Microsoft Edge瀏覽器宣布支持Web身份驗證
Pharrell x adidas 全新聯名 SOLARHU 發布,Space X 首位繞月旅客身份曝光| HB Daily
牙買加「飛人」Usain Bolt 將以球員身份亮相 Old Trafford 球場
11 requests的身份認證方式
Google兩步驗證下載Google身份驗證器掃描二維碼時提示需要更新 GooglePlay又無法正常訪問 GoolgePlay
Google為Android P 引入新的生物識別身份驗證 API
ID Chain,高效身份認證平台
藍盟觀察:思科擬收購雲服務身份管理軟體提供商DuoSecurity
防止黑客通過SIM卡入侵 Instagram構建新的身份驗證系統
苟芸慧以首位香港藝人身份紐約欣賞Tiffany Paper Flower 系列
Google人工智慧Duplex AI在打電話時會主動表明身份
Spelunky 2宣布,將探索父母身份 Guacamelee!2宣布
侃爺「老爹鞋」新作真實身份終於明確了!YEEZY Season 6 Desert Rat Boot你會買嗎?
華為正在開發電子身份證,基於Huawei Pay
Twitter拓展身份驗證方式:支持通過U盾登錄