-
背景
-
POC
-
复现步骤
gitlab漏洞-未经授权的用户可以访问管道数据
声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
背景
vaib25vicky小哥于2020年8月提交了这个漏洞: 根据 https://gitlab.com/gitlab-org/gitlab-foss/-/issues/32568 当前的安全模型:
如果你是schedule的所有者(开发者)或master =>,你可以读取,修改和删除, 如果你是developer =>,你只需要列出,而不是读取;
只允许所有者和master读取分配给调度的变量。它可以防止其他开发人员劫持schedule,但允许master完全控制它们。Master已经有访问私有变量的权限。
但是,即使用户不是项目的一部分,api端点也会清楚地向所有人展现。https://docs.gitlab.com/ee/api/pipeline_schedules.html#get-a-single-pipeline-schedule
POC
这是我的测试项目https://gitlab.com/thevicc/trigg与时间表管道的自定义变量,你是没有读的权限的。 但是现在,运行这个来读取变量及其值
curl --header "Private-Token: <your_access_token>" https://gitlab.com/api/v4/projects/20618145/pipeline_schedules/69918
响应如下:
复现步骤
1.创建项目并添加带有自定义变量的进度管道
2.只有你自己或所有者可以读取变量
3.使用第二个帐户,使用api 来访问: https://docs.gitlab.com/ee/api/pipeline_schedules.html#get-a-single-pipeline-schedule
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/29/pipeline_schedules/13"
原文始发于微信公众号(迪哥讲事):gitlab漏洞-未经授权的用户可以访问管道数据
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论