Shikata Ga Nai

Private? There is no such things.

LAB: エラーメッセージによる情報漏洩 – 脆弱なフレームワークのバージョン特定

Hello there, ('ω')ノ

🎯 ラボの目的

  • 製品ページのリクエストで異常な値を送信。
  • エラー時に返されるスタックトレースから使用中のフレームワークとそのバージョンを特定
  • バージョンを解答フォームに入力して提出 → ラボクリア!

🧪 攻略手順(Burp Suite使用)

1. 任意の商品ページを開く

  • 通常通りブラウザで任意の「製品詳細ページ」にアクセス。

2. Burpでリクエスト確認

  • Burpの Proxy > HTTP history を開く。
  • GET /product?productId=数字 というリクエストを探す(例:productId=1)。
  • これを Repeater に送信。

3. パラメータを異常な値に変更

  • productId=1 を、次のように 数値でない文字列に変更:
  GET /product?productId="example"
  • リクエストを送信。

4. スタックトレースを確認

  • レスポンス内に以下のような情報が含まれている:
org.apache.struts2...
Struts Problem Report
Apache Struts 2.3.31

→ この情報から、使用中のフレームワークが Apache Struts 2.3.31 であることがわかる。


✅ 解答と提出

  • ラボ画面に戻り、「Submit solution」ボタンをクリック。
  • 2.3.31 と入力し、提出。
  • 🎉 正解すればラボクリア!

🔍 学びのポイント

要素 解説
verbose error 通常は非表示にすべき詳細なスタックトレースが露出
データ型ミスマッチ 型の違う値を渡すことで内部エラーを引き起こせる
バージョン情報の漏洩 既知の脆弱性の調査対象となる(CVEベースの攻撃が可能)

🔐 エラーは攻撃の入り口。「何を入れたらどう壊れるか」を調べて、内部構造を知る手がかりを拾うことが重要です!

Best regards, (^^ゞ