概括

這個漏洞是關于我如何能夠在沒有任何交互的情況下僅通過使用大多數組織沒有實現的新功能來接管任何用戶帳戶。讓我讓您更好地了解目標及其功能。

假設目標是target.com,它是一個視頻學習平臺,您可以在其中上傳有關任何課程或培訓的視頻,并與公共、私人或什至用于任何電子商務目的共享。目標是擁有許多不同的功能,包括團隊管理和邀請用戶加入團隊。所以一旦我們邀請某人加入我們的團隊。我們也可以編輯該用戶的信息并更改密碼。

需要注意的一件重要事情是,無論何時創建新用戶,都會分配一個唯一的用戶 ID ,該用戶 ID 實際上是連續的,很容易被猜到。他們之所以這樣做,是因為用戶分享了他們的視頻,并使這個過程簡單易記,個人資料鏈接。

所以你們都必須知道,只要有邀請用戶功能和團隊管理功能。我們甚至可以管理和編輯受邀用戶的信息,有時也可以更改他們的密碼。但這里還有一個附加功能,即“復制重置密碼鏈接”。此按鈕的作用是復制該受邀用戶的重置密碼鏈接。這就像使用密碼重置功能一樣,但團隊經理可以在這里復制其受邀用戶的重置密碼鏈接。

后端到底發生了什么?當我們點擊那個按鈕時,一個請求被發送到服務器,要求該用戶的重置密碼鏈接,服務器響應該鏈接,然后該鏈接被復制到我們的剪貼板中。

區別

您一定在想這個功能和普通的重置密碼功能有什么區別?

主要區別在于,當我們使用重設密碼功能時,服務器僅響應“電子郵件中發送的密碼重設鏈接”。

但是在這個端點中,鏈接是由服務器在響應中發送的。我立即想到這可能是存在漏洞的情況。

方法

我記下了一些我認為可能有幫助的事情,即某些用戶(包括受邀用戶和非受邀用戶)的用戶 ID 以及當我們單擊復制密碼重置鏈接時的請求。

它看起來像這樣

請求端點是:

target.com/json/reply/GetResetPasswordLinkRequest?userid=。

1.起初,我考慮將 userid 參數更改為其他用戶 id 參數,即不是受邀用戶而是非受邀用戶或其他管理員的用戶 id。 

2.我更改了請求中的用戶標識并發送了請求。我認為它應該拋出一個未經授權的錯誤,但它發送了一些密碼重置鏈接作為響應。 

3. 我無法相信并且很高興這是一個僅通過用戶 ID 的帳戶接管。我想盡快使用此鏈接并展示完整的影響。但是當我打開鏈接,輸入新密碼并點擊提交時,它顯示了一個錯誤。 

4. 本來還高興了幾分鐘,現在顯示錯誤。所以我認為他們有一些實現可以防止這種情況發生。

重要的部分來了

在那個錯誤之后,通常研究只是轉向一些其他方法或測試一些其他功能,認為這不起作用。但在這里我所做的是嘗試使用舊密碼登錄受害者帳戶……而且它實際上向我顯示了錯誤的密碼。

我立即輸入我在鏈接中使用的新密碼,登錄成功。那么究竟發生了什么?即使密碼重置鏈接顯示此錯誤,密碼實際上是在后端更改的。這只是前端的這個錯誤。

我立即嘗試更改該平臺上其他一些帳戶的密碼,因為用戶 ID 是公開可見的。我實際上能夠更改組織發布博客內容的博客帳戶的密碼,并以這種方式顯示影響。

該組織立即實施了必要的修復,并告訴我等待,因為他們也在進行其他一些主要修復。他們根據他們的賞金等級獎勵了我2000美金

提示和要點:有時即使出現錯誤,也要始終重新驗證您嘗試進行的更改。如果未經驗證,我們可能會錯過很多東西。

始終在響應中可見任何敏感信息的地方記錄端點。