目录
仅供学习参考使用,请勿用作违法用途,否则后果自负。
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-compose.yaml内容如下:
- version: '3'
- services:
- gitlab:
- image: 'gitlab/gitlab-ce:14.7.4-ce.0'
- container_name: 'gitlab'
- restart: always
- privileged: true
- hostname: '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:
Authorization callback URL:
http://192.168.119.243:8080/users/auth/github/callback
使用这个,因为上面那个回报错
http://gitlab/users/auth/github/callback


查看ID,进入容器目录:
- docker ps
-
- docker 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.*/
官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,酌情升级至安全版本。