-
背景
-
复现步骤
声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
背景
stefansundin于2020年提交了这个漏洞:
本报告中使用Gitter作为示例,在GitLab上的用户授权OAuth应用程序之后,用户就能够检索完整的应用程序数据库记录。这包括存储OAuth应用程序的所有数据库表中的列。在GitLab.com的例子中,这些数据:id、名称、uid、secret、redirect_uri、scopes、created_at、updated_at、owner_id、owner_type、trusted、confidential。
Doorkeeper提供了一个页面,让你看到你授权了哪些应用程序,它还提供了取消对这些应用程序访问的功能。
可以在/oauth/authorized_applications
中找到。在GitLab上,这个列表可以在/oauth/applications
上找到,但是/oauth/authorized_applications
的路由仍然存在(但是在GitLab上返回一个5xx错误)。gem还为API客户端提供了路由(例如/oauth/authorized_applications.json
),它不过滤应用程序返回的字段,这意味着它返回所有你授权的应用程序的属性。
复现步骤
1.拥有一个GitLab用户。
2.授权OAuth应用程序,例如Gitter (https://gitter.im/)。
3.打开https://gitlab.com/oauth/authorized_applications.json
4.见以下(敏感部分泄露):
[{"id":113598,"name":"Gitter.im","uid":"e2803ae4f09cebdcff56813a0bfbb1a4f0b187355b509eb6d5367a07ad523762","secret":"e08cdf64xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","redirect_uri":"https://login.gitter.im/login/gitlab/callback","scopes":["api","read_user"],"created_at":"2018-03-27T21:43:32.100Z","updated_at":"2019-09-25T06:37:25.988Z","owner_id":1577466,"owner_type":"User","trusted":false,"confidential":false}]
这个漏洞最后官方给了3000$
原文始发于微信公众号(迪哥讲事):gitlab漏洞系列-任何用户在授权后都可以检索OAuth应用程序客户端敏感信息
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论