Burp Proxy で HTTP トラフィックをインターセプト・転送する

Beginner
オンラインで実践に進む

はじめに

Burp Suite は、Web アプリケーションのセキュリティテストを実行するための強力なプラットフォームです。その最も基本的なツールの 1 つが Burp Proxy であり、ブラウザと Web サーバー間のトラフィックをインターセプト、検査、および変更することができます。

この実験 (lab) では、Burp Proxy の基本的なワークフローを学びます。インターセプトモードを有効にし、Web ブラウザからリクエストを行い、Burp Suite でキャプチャされた HTTP リクエストを表示し、それを宛先サーバーに転送します。このスキルは、Burp Suite で実行されるほぼすべての Web アプリケーションテストタスクの基礎となります。実験 (lab) 環境には、Burp Suite と事前設定済みのブラウザが用意されています。

Proxy > Intercept タブでインターセプトモードを有効にする

このステップでは、Burp Suite を起動し、Web トラフィックのキャプチャの最初のステップとなるインターセプト機能を有効にします。

まず、Burp Suite アプリケーションを起動します。デスクトップにアイコンがあります。

  1. デスクトップ上の Burp Suite Community Edition アイコンをダブルクリックします。
  2. 「Project」というタイトルのダイアログボックスが表示される場合があります。Temporary project を選択し、Next をクリックします。
  3. 「Burp configuration」という別のダイアログボックスが表示される場合があります。Use Burp defaults を選択し、Start Burp をクリックします。

Burp Suite がロードされたら、Proxy ツールに移動してインターセプトを有効にする必要があります。

  1. ウィンドウ上部にある Proxy タブをクリックします。
  2. Proxy タブ内で、Intercept サブタブにいることを確認します。
  3. Intercept is off と表示されているボタンがあります。このボタンをクリックしてインターセプトを有効にします。

ボタンのテキストが Intercept is on に変わり、押された状態に見えます。これは、Burp Proxy が設定されたブラウザによって行われたリクエストをキャプチャする準備ができたことを示しています。

ブラウザでリクエストを行う

Burp Suite でインターセプトが有効になったので、Web ブラウザからリクエストを行います。Burp Proxy は、このリクエストがサーバーに到達する前にキャプチャします。この実験 (lab) 環境のブラウザは、すでにトラフィックを Burp Proxy を介して送信するように設定されています。

  1. Firefox Web ブラウザを開きます。デスクトップまたはアプリケーションパネルにアイコンがあります。
  2. ブラウザ上部のアドレスバーに、次の URL を入力して Enter キーを押します。
http://127.0.0.1:8000

Enter キーを押した後、ブラウザのタブにローディングアイコンが表示されますが、ページはロードされないことに気づくでしょう。これは予期された動作です。リクエストはブラウザから送信されましたが、現在 Burp Proxy に「スタック」しており、あなたが検査して転送するのを待っています。

Burp Suite でインターセプトされたリクエストを表示する

このステップでは、Burp Suite に戻り、ブラウザから先ほど行った HTTP リクエストを表示します。

Burp Suite ウィンドウに戻ります。以前は空だった Proxy > Intercept タブに、ブラウザが送信した完全な HTTP リクエストが表示されています。

以下のような生のテキストリクエストが表示されます。

GET / HTTP/1.1
Host: 127.0.0.1:8000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

リクエストの各部分を調べるために、しばらく時間を取ってください。

  • リクエストライン (Request Line): GET / HTTP/1.1 は、メソッド、パス、HTTP バージョンを示します。
  • ヘッダー (Headers): HostUser-Agent のような行は、リクエストとそれを行っているクライアントに関する追加情報をサーバーに提供します。
  • ボディ (Body): このような GET リクエストの場合、ボディは空です。

このビューは、Web アプリケーションがどのように機能するかを理解し、操作するために非常に重要です。

「Forward」ボタンをクリックしてリクエストをサーバーに送信する

リクエストを検査した後、次のアクションは、意図された宛先であるローカル Web サーバーにリクエストを続行させることです。

Burp Suite の Proxy > Intercept タブで、リクエストパネルの上部に ForwardDropAction などのボタンが表示されます。

  1. Forward ボタンをクリックします。

Forward をクリックすると、リクエストは Intercept ビューから消えます。Burp Suite はリクエストをサーバー (127.0.0.1:8000) に送信しました。

ここで、Firefox ブラウザに戻ります。ページがロードされ、「Welcome to the LabEx Test Page!」というテキストが表示されるはずです。これは、リクエストが正常にサーバーに転送され、サーバーの応答がブラウザに送り返されてレンダリングされたことを確認します。

インターセプトモードを無効にしてトラフィックを自由に流す

最後に、インターセプトモードを無効にする方法を学びます。トラフィックを積極的に検査していないときは、インターセプションをオフにすることが非常に重要です。そうしないと、すべてのブラウジングがブロックされます。

  1. Burp Suite ウィンドウに戻り、Proxy > Intercept タブにいることを確認します。
  2. Intercept is on ボタンをクリックします。

ボタンのテキストが Intercept is off に戻り、押された状態ではなくなります。これで、Burp Proxy はすべてのトラフィックを検査のために停止することなく通過させます。

これを確​​認するために、Firefox ブラウザに戻り、ページをリロードします(F5 キーまたはリロードボタンを押すことができます)。リクエストはもはや Burp Suite によって保持されていないため、ページは遅延なく即座にリロードされます。

まとめ

この実験では、Burp Proxy を使用して HTTP トラフィックをインターセプトおよび転送する基本的なワークフローを習得しました。

以下の主要なスキルを練習しました。

  • Proxy > Intercept タブでのインターセプトモードの有効化と無効化。
  • ブラウザからリクエストが送信される際に、それをキャプチャすること。
  • インターセプトされたリクエストの生のコンテンツを表示して、その構造を理解すること。
  • 通信を完了させるために、リクエストをサーバーに転送すること。

この基本的なスキルは、リクエストやレスポンスを変更して脆弱性をテストするなど、より高度な Web セキュリティ テスト技術の基礎となります。