Hello there, ('ω')ノ
🎯 ゴール
.gitディレクトリからバージョン履歴を取得- 過去コミットの差分から管理者パスワードを特定
- 管理者でログインして
carlosを削除
手順
Step 1: .git ディレクトリの存在を確認
ブラウザでアクセス:
https://<ラボID>.web-security-academy.net/.git/
中身が表示されたら、外部から履歴情報が取得可能です。
Step 2: .git ディレクトリを丸ごとダウンロード
Linuxの場合:
wget -r https://<ラボID>.web-security-academy.net/.git/
Windowsの場合は Git Bash や Cygwin、WSL を利用。
Step 3: 履歴を解析
ダウンロードしたディレクトリに移動:
cd <ラボID>.web-security-academy.net/.git
リポジトリのログを確認:
git log
すると、例えば次のようなコミットが見つかります:
commit xxxxxxx Author: dev@example.com Date: ... Remove admin password from config
Step 4: 過去の差分を表示
該当コミットの差分を確認:
git show xxxxxxx
admin.conf の変更前に、環境変数化される前の 平文パスワード が残っているはずです。
例:
- admin_password=SuperSecretPass123 + admin_password=${ADMIN_PASSWORD}
Step 5: 管理者ログイン
- ラボの
/loginページへアクセス - ユーザー名:
administratorパスワード:先ほど見つけた漏えいパスワード - ログイン成功後、
/adminへ進む
Step 6: carlos を削除
管理者パネルでユーザー carlos を選び、「Delete」ボタンを押してラボクリア。
✅ 学べるポイント
- Git履歴は過去の秘密情報が残り続ける → パスワードを消しても過去コミットには残る
.gitを本番環境に置くことは非常に危険- 攻撃者は
git logとgit showを使って容易に機密情報を発見できる
Best regards, (^^ゞ