Hello there, ('ω')ノ
このラボでは、SSRF(Server-Side Request Forgery)を利用して、内部ネットワークの管理インターフェースをスキャンし、ユーザー「carlos」を削除する ことが目的です。
アプリケーションには「在庫チェック機能」があり、これを利用して 192.168.0.X の範囲で管理画面が動作しているサーバーを特定し、管理操作を実行 します。
🔍 攻撃の手順
1. 在庫チェック機能を利用してリクエストを傍受する
- 任意の製品ページを開く
- 「Check stock(在庫を確認)」ボタンをクリック
- Burp Suite を起動し、リクエストをキャプチャする
リクエストの例:
POST /product/stock HTTP/1.1 Host: YOUR-LAB-ID.web-security-academy.net Content-Type: application/x-www-form-urlencoded Content-Length: 118 stockApi=http://stock.weliketoshop.net:8080/product/stock/check?productId=6&storeId=1
このリクエストは、サーバーが 指定されたURLにリクエストを送信する 仕組みになっています。
ここで stockApi
パラメータを悪用 すれば、内部ネットワークの管理インターフェースにアクセスできます。
2. Burp Intruder を使って内部サーバーをスキャン
管理画面のIPアドレスが 192.168.0.X
の範囲にあるため、Burp Suiteの Intruder を使って、管理インターフェースが動作しているサーバーを特定します。
Burp Suite の Intruder にリクエストを送信
- キャプチャしたリクエストを Intruder に送る
stockApi
のURLをhttp://192.168.0.1:8080/admin
に変更192.168.0.1
の 「1」の部分をハイライト し、Add §
ボタンをクリック
IPアドレスをスキャン
- Payloads タブ を開く
- Payload type を「Numbers」に変更」
- 範囲(From: 1, To: 255, Step: 1)を設定
- 「Start attack」をクリック
✅ レスポンスのステータスコードを確認
✅ 「200 OK」のレスポンスがあるものが管理画面のアドレス!
3. 管理画面にアクセスし、ユーザー削除
スキャン結果から、192.168.0.X:8080/admin
の管理ページが見つかったら、Burp Suite の Repeater に送ります。
管理画面のHTMLを確認し、削除リクエストを探す
- HTML内に次のようなリンクが含まれている可能性がある
html <a href="/admin/delete?username=carlos">Delete carlos</a>
- これが 削除リクエストのパス になる
- HTML内に次のようなリンクが含まれている可能性がある
stockApi
に/admin/delete?username=carlos
を送信- リクエストを Burp Suite Repeater に送る
stockApi
のURLをhttp://192.168.0.X:8080/admin/delete?username=carlos
に変更
リクエストの例: ```http POST /product/stock HTTP/1.1 Host: YOUR-LAB-ID.web-security-academy.net Content-Type: application/x-www-form-urlencoded Content-Length: 118
stockApi=http://192.168.0.X:8080/admin/delete?username=carlos ```
- 「Send」ボタンをクリック!
✅ 成功すると、carlos のアカウントが削除され、ラボクリア!🎉
🎯 まとめ
- 在庫チェック機能を使い、Burp Suite でリクエストをキャプチャ
- Burp Intruder で
192.168.0.X:8080
の範囲をスキャンし、管理画面を特定 - 管理画面のHTMLを取得し、削除リクエストを特定
- Burp Repeater で
/admin/delete?username=carlos
を送信し、ユーザーを削除 - ラボクリア!🎉
Best regards, (^^ゞ