Burp Repeaterによるリクエストの再発行

Burp Repeaterによるリクエストの再発行

このチュートリアルでは、興味深いリクエストをBurp Repeaterを使って何度も繰り返し送信します。すると、リクエストのインターセプトを何度もしなくても、さまざな入力に対する対象Webサイトの反応を調べられます。これにより、脆弱性の調査や、Burp Scannerが発見した脆弱性の確認などが非常に簡単になります。

Webセキュリティアカデミー

この先に進むにはportswigger.netのアカウントが必要です。まだ持っていない場合、登録は無料で、Webセキュリティアカデミーへのフルアクセスが可能となります。

ターゲットスコープについての前回のチュートリアルを終えていない場合は、先に進む前に済ませておく必要があります。ターゲットスコープの設定を参照してください。

Burp Repeaterへリクエストを送信

Burp Repeaterの最も一般的な使用方法は、Burpの他のツールからリクエストを送ることです。この例では、Burp ProxyのHTTP履歴からリクエストを送信してみます。

ステップ1: 興味深いリクエストを見つける

前回のチュートリアルでは、偽のショッピングサイトを閲覧しました。商品ページにアクセスするたびに、ブラウザはproductIdクエリパラメータを付けて、GET /productリクエストを送信していたことに注目してください。

興味深いリクエストを見つける

Burp Repeaterを使って、この動作をもっと詳しく見てみましょう。

ステップ4: Burp Repeaterへリクエストを送信する

GET /product?productId=[...]リクエストのどれかを右クリックし、Repeaterに送信を選択します。

Burp Repeaterへリクエストを送信

Repeaterタブに移動すると、独自の番号のついたタブでリクエストが待機しています。

ステップ5: リクエストを送信レスポンスを確認する

送信をクリックすると、サーバからのレスポンスが表示されます。このリクエストは何度でも再送でき、その都度レスポンスが更新されます。

Burp Repeaterによるリクエストの再発行

Burp Repeaterによるさまざまな入力のテスト

同じリクエストに毎回異なる入力をして再送すると、入力に基づくさまざまな脆弱性の発見や確認ができます。これは、Burp Suiteを使って手動テスト行う、最も一般的な作業の1つです。

ステップ1: 異なる入力でリクエストを再送信する

productIdパラメータの数字を変更し、リクエストを再送します。大きめの数字など任意の数字を指定してみてください。

さまざまな入力を試す

ステップ2: リクエスト履歴を見る

矢印を使うと、自分が送ったリクエストとそれに対応するレスポンスの履歴をさかのぼって確認できます。また、各矢印の横にあるドロップダウンメニューから、履歴内の特定リクエストにジャンプもできます。

Burp Repeaterのリクエスト履歴を見る

これは、以前に送信したリクエストに戻って、特定の入力をさらに調査する場合に便利です。

レスポンスの内容を比較すると、IDを入力すると別の商品ページのリクエストはできますが、指定されたIDの商品を見つけられなかった場合、サーバがNot Foundレスポンスを返すことに注目してください。このページがどのように動作するかがわかったところで、想定外の入力に対してどのように反応するかを、Burp Repeaterを使って見てみましょう。

ステップ3: 想定外の入力をしてみる

サーバは、このproductIdパラメータで整数値を受け取ることを期待しているようです。異なるデータタイプを送信するとどうなるか見てみましょう。

productIdを文字列にした別のリクエストを送信します。

想定外の入力を行う

ステップ4: レスポンスを調べる

整数ではないproductIdを送信すると、例外が発生するか確認してください。サーバから、スタックトレースを含む冗長なエラーレスポンスが送信されます。

レスポンスのエラーメッセージを調査する

レスポンスを見ると、WebサイトがApache Strutsフレームワークを使用していることや、そのバージョンもわかります。

リークされたフレームワークのバージョンを確認する

実際のシナリオでは、このような情報が攻撃者にとって有用である場合があります。特に、そのバージョンに脆弱性があることが知られている場合はなおさらです。

Burpブラウザでラボに戻り、Submit solutionボタンをクリックします。レスポンスで判明したApache Strutsのバージョン番号を入力してください(2 2.3.31)。

解答の提出

おめでとうございます。これでまたひとつラボが増えましたね。これでBurp Repeaterを使ってWebサイトの一部を診断し、情報漏洩の脆弱性の発見に成功しました。

次のステップ - 初めてのスキャン実行 (Proユーザのみ)

次へ

このチュートリアルの内容

  1. Burp Suiteのダウンロードとインストール。
  2. Burp ProxyによるHTTPトラフィックのインターセプト。
  3. Burp Proxyによるリクエストの変更。
  4. ターゲットスコープの設定。
  5. Burp Repeaterによるリクエストの再発行。
  6. 初めてのスキャン実行。
  7. 次は?