当前大量开发人员使用git进行版本控制,对站点自动部署。  如果配置不当,可能会将.git文件夹直接部署到线上环境,这就引起了git泄露漏洞。

GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,还原重建工程源代码。

渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等安全漏洞。

老外有写过rip-git.pl 安全脉搏在《HCTF2014 Writeup》发过使用方法,只是这个pl脚本有时候不太好用

root@SecPulse:~/Desktop# chmod 777 rip-git.pl
root@SecPulse:~/Desktop# ./rip-git.pl -v -u http://121.40.86.166:39339/.git/

脚本的工作原理

 

1. 解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )

2. 去.git/objects/ 文件夹下下载对应的文件

3. 使用zlib解压文件,按原始的目录结构写入源代码

它的优点

 

1. 速度快,默认20个工作线程

2. 尽量还原所有的源代码,缺失一部分文件不影响脚本工作
3. 脚本不需要执行额外的git命令,有python就够了

可能的改进

 
存在文件被gc打包到git\objects\pack的情况,稍后可测试下看能否直接获取并解压这个文件,还原源代码

用法示例

 

GitHack.py http://www.secpulse.com/.git/

 

执行中截图:

2015042912162273440

执行结果:

2015042912163267448

 

获取代码:

https://github.com/lijiejie/GitHack

 

参考资料:

Git Index Formart

非常感谢 sbp 的 gin - a Git index file parser,脚本中使用了他的解析源代码,为适用python 2.x和Windows作了细微的改动

李姐姐相关工具一览表:

subDomainsBrute — 改进渗透测试时暴力枚举子域名的python脚本

htpwdScan — 一个简单的HTTP暴力破解、撞库攻击脚本

源链接

Hacking more

...