你們好,我想分享一下我如何在某項目中發現一個簡單的API受權錯誤,該錯誤影響了數千個子域,並容許我在無需用戶干預的狀況下利用大量不受保護的功能,從賬戶刪除到接管和泄漏部分信息(名字,電子郵件ID和僱主)。api
重點:服務器沒有檢查受權承載令牌是屬於普通用戶仍是超級用戶。服務器
這是一個私人項目,所以將刪除一些敏感信息,我將其稱爲「 target.com」。
我經過dirsearch在後臺掃描運行的同時,經過瀏覽academy.target.com,;瞭解了大概的網站功能。
我注意到一個有趣的端點,如:academy.target.com/api/docs
此類端點就像是金礦,由於它們具備API文檔並指定了請求和響應的結構。
在瀏覽到端點時,我發現頁面與Swagger UI很是類似(儘管此網站未使用swagger)。它還有一個名爲「驗證」的按鈕,單擊該按鈕可導航到登陸頁面,但若是我嘗試登陸,則會顯示「未受權賬戶」消息。
有一些有趣的端點,例如:ide
/poweruser/add /poweruser/delete /user/delete /user/create /user/user_logged_in /user/profile
頁面有點像這樣。
這讓我措手不及,由於彷佛這些端點應該僅供內部/高級用戶使用。
在沒有任何API令牌或受權標頭的狀況下直接調用端點會致使:
該網站彷佛未提供任何API,而且我找不到任何生成APItoken的方法,所以我決定稍後進行檢查。
在深刻分析以後,我仍然沒法在請求或響應中找到單個APItoken。
可是,我注意到許多請求都有authorization頭。
我決定只複製authorization頭,並將其包含在對我發現的API端點的調用中。
我建立了另外一個賬戶,並嘗試經過api / user / edit的POST請求更改其密碼。
瞧!真棒。除了將賬戶升級爲高級用戶以外,我還能夠成功調用幾乎全部其餘API端點。
該文檔詳細說明了刪除/接管/建立新賬戶以及執行其餘一些危險操做所需的參數。
我決定直接將該漏洞報告給供應商,結果他們擁有了一個私人漏洞賞金計劃,並授予我440美圓的賞金。
謝謝閱讀!學習
翻譯自medium.com
免責申明:本文由互聯網整理翻譯而來,僅供我的學習參考,若有侵權,請聯繫咱們,告知刪除。網站