gitlab漏洞系列-项目访问令牌名泄露

admin 2022年4月15日03:05:44评论231 views字数 934阅读3分6秒阅读模式

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

背景

白帽小哥joaxcar2021年发现并提交了这个漏洞:

当一个项目访问令牌被创建时(project access token),用户被要求“给这个令牌一个名字”; 文档中几乎没有迹象表明,这个“令牌名称”将是为方便令牌而创建的底层BOT用户的名称。由于Gitlab目前是结构化的,所有常规用户都可以通过https://gitlab.com/USERNAME和API (/API/v4/users/:id)公开查看。

所存在的问题: 当创建一个项目访问令牌时,创建它的用户可能更多地考虑的是在项目内部(可能是私有的)提供信息。而不是这个名字可能会透露给未经认证的用户浏览GitLab。由于bot用户被赋予一个相当通用的用户名(project_<PROJECT_ID>_bot),一个简单的搜索将列出所有这些bot。恶意用户现在看到的是: 1.来自高级或以上用户的(通常是私有的)项目ID 2.关于这个项目的信息通常包括:成员名称、项目名称、公司名称、构建工具等等。甚至是令牌;

在此之后,可以通过搜索<PROJECT_ID>_bot来检查给定项目中是否存在多个BOT用户。新的列表将显示所有BOT用户bot1, bot2…等等。这个列表可以让恶意用户对私有项目有更深入的了解。搜索_bot10会给出包含至少10个BOT用户的项目列表,这可能会揭示有关项目的大量信息。

复现步骤

1.退出gitlab.com(这可以在未经验证的情况下工作) 2.跳转去https://gitlab.com/-/graphql-explorer3.发出一个请求:

{
  users(search: "_bot") {  
    nodes {  
      username  
      name  
    }  
  }  
}

结果列出了大部分私人项目信息。

影响

未经认证的参与者可以请求BOT用户名单,这些名单可能会泄露私人项目(gitlab.com: premium)客户的秘密信息。


原文始发于微信公众号(迪哥讲事):gitlab漏洞系列-项目访问令牌名泄露

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月15日03:05:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   gitlab漏洞系列-项目访问令牌名泄露http://cn-sec.com/archives/912577.html

发表评论

匿名网友 填写信息