GitDump

GitDump はディレクトリトラバーサルが無効な場合に .git からソースコードをダンプします
必要条件
テスト済み
機能
- ディレクトリトラバーサルが無効な場合に、website/.git ディレクトリからソースコードをダンプします。
動作原理
- 一般的なファイル (.git/index, .git/HEAD, .git/ORIG_HEAD など) をすべて取得します。
- .git/packed-refs や .git/index などを解析して、できるだけ多くのオブジェクト (sha1) を見つけます。
- idx ファイルと pack ファイルをダウンロードします。
- その後、
git checkout -- . を実行してソースコードを復元できます。
使い方
- python3 git-dump.py https://website.com/.git/
- 出力ディレクトリを作成し、そこにすべての .git ファイルをダンプします。
- 上記のスクリプトを実行した後、
cd output && git checkout -- . と入力します。
- すべてのソースコードが復元されます。
スクリーンショット
今後の課題
- コミット履歴やブランチを深く掘り下げて、git リポジトリ内のシークレットを検索します。
クレジット Sean B. Palmer 氏のインデックスファイルパーサー (https://github.com/sbp/gin) に感謝します。