git参数注入

11月12日更新:
之前gitea有漏洞没有跟进,后来偶尔翻这位大佬的博客看到这篇文章,又是一篇讲git相关命令注入的漏洞!爽
https://lorexxar.cn/2019/07/23/gitea-cve-2019-11229/
还有之前腾讯的某会上讲的几个git参数注入的议题(很有启发):
对基于Git的版本控制服务的通用攻击面的探索


向前一段时间出的Jenkins的git client插件的RCE(CVE-2019-10392)就是git ls-remote命令拼接导致的命令执行。

然后找了一些git的命令注入的例子:

git-ls-remote

git ls-remote -h --upload-pack=calc.exe HEAD

在这里插入图片描述
这个也是git-ls-remote命令的参数注入漏洞:
https://snyk.io/vuln/npm:git-ls-remote:20160923

git grep

git grep --open-files-in-pager=calc.exe master

参考:https://www.leavesongs.com/PENETRATION/escapeshellarg-and-parameter-injection.html
在这里插入图片描述
感觉好几个是跟pager相关的。pager是用户指定的一个外部的执行diff、cat等功能的可执行文件的路径。
但是我在git log和git diff命令下没找到。

hg branch

有一个hg的branch名字命令参数注入的:
https://hackerone.com/reports/288704

另外又看到几个git的参数注入的:
https://staaldraad.github.io/post/2019-07-16-cve-2019-13139-docker-build/
使用docker build命令的时候:
PoC:

docker build "git@g.com/a/b#--upload-pack=sleep 5;:"

实际上执行的命令是:

$ git init
$ git remote add git@g.com/a/b
$ git fetch origin "--upload-pack=sleep 5; git@g.com/a/b"

另外还有一个git submodule的命令执行:

https://staaldraad.github.io/post/2018-06-03-cve-2018-11235-git-rce/

利用了git hooks的路径穿越。

git-shell 的命令参数注入:
参考:
https://www.leavesongs.com/PENETRATION/git-shell-cve-2017-8386.html

我们随便打开Github上一个项目,找到Clone with SSH里列出的地址:git@github.com:phith0n/vulhub.git,其实这个url就是告诉git,ssh用户名是git,地址是github.com(默认端口是22),该项目位于phith0n/vulhub.git这个目录下;然后git就通过ssh协议连接上github.com,并将对应目录下的项目拉取下来。
所以,基于ssh协议的git clone等操作,本质上就是通过ssh协议连接上git服务器,并将指定目录拉取下来的过程。
在这里插入图片描述

less读取文件:
shift + e,然后输入文件名即可读取这个文件。
在这里插入图片描述
less执行命令:
在这里插入图片描述
参考:
https://docs.ioin.in/writeup/evi1cg.me/_archives_CVE_2017_8386_html/index.html

比如git-receive-pack --help命令就用到了less命令,可以用来读取文件和执行命令。

其他git参数注入示例

Git flag injection - local file overwrite to remote code execution
Git flag injection leading to file overwrite and potential remote code execution

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值