目录
0x01 声明:
0x02 简介:
0x03 漏洞概述:
0x04 影响版本:
0x05 环境搭建:
Docker环境搭建:
漏洞环境搭建:
创建文件
拉取内容:
访问:
Github配置:
新增OAuth application
配置gitlab:
进入容器目录:
修改gitlab.rb文件
重启docker:
0x06 漏洞复现:
复现:
使用github登录:
问题:
验证:
0x07 流量分析:
特征:
0x08 修复建议:
仅供学习参考使用,请勿用作违法用途,否则后果自负。
GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,可通过 Web 界面访问公开或私人项目。
GitLab官方描述,系统会默认给使用了 OmniAuth 程序(例如 OAuth、LDAP、SAML)注册的帐户设置一个硬编码密码,从而允许攻击者可直接通过该硬编码密码登录并接管帐户。
Gitlab CE/EE >=14.7, <14.7.7
Gitlab CE/EE >=14.8, <14.8.5
Gitlab CE/EE >=14.9, <14.9.2
参考这篇文章(Docker&Docker-compose环境安装_Evan Kang的博客-CSDN博客https://blog.csdn.net/qq_44281295/article/details/126573488)
新建文件docker-compose.yaml内容如下:
version: '3'
services:gitlab:image: 'gitlab/gitlab-ce:14.7.4-ce.0'container_name: 'gitlab'restart: alwaysprivileged: truehostname: 'gitlab'environment:TZ: 'Asia/Shanghai'ports:- '8080:80'volumes:- ./config:/etc/gitlab- ./data:/var/opt/gitlab- ./logs:/var/log/gitlab
docker-compose up -d
http://192.168.119.243:8080
头像—Settings--Developer settings--OAuth Apps
Homepage URL:
http://192.168.119.243:8080
Authorization callback URL:
http://192.168.119.243:8080/users/auth/github/callback
使用这个,因为上面那个回报错
http://gitlab/users/auth/github/callback
查看ID,进入容器目录:
docker psdocker exec -it 2fe837dacaca /bin/bash
路径:(/etc/gitlab/gitlab.rb)
内容:
### OmniAuth Settings
###! Docs: https://docs.gitlab.com/ee/integration/omniauth.html
gitlab_rails['omniauth_allow_single_sign_on'] = ['github']
gitlab_rails['omniauth_auto_link_ldap_user'] = true
gitlab_rails['omniauth_block_auto_created_users'] = true
gitlab_rails['omniauth_providers'] = [{name: "github",app_id: "APP_IP",app_secret: "APP_SECRET",args: { scope: "user:email" }}
]
docker restart xxxx
最后会向GitHub中填写的Callback跳转 发起GET请求参数为 http://gitlab/users/auth/github/callback?code=xxxxxxx&state=xxxxxxxx,502失败。
修改重定向url:
http://192.168.119.243:8080/users/auth/github/callback?code=xxxxxxx&state=xxxxxxxx
使用管理员root登录
(首次需要查询密码)
进入容器目录:
cat /etc/gitlab/initial_root_password
授权成功后,可使用该账号加123qweQWE!@#000000000登录
gitlab主页URL:
"/users/sign_in"
Github认证URL:
"/users/auth/github/callback"
response.body:
/.*\.gitlab\.com.*/
response.body:
/.*GitLab Enterprise Edition.*/
response.body:
/.*GitLab Community Edition.*/
response.body:
/.*This is a self-managed instance of GitLab.*/
官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,酌情升级至安全版本。