はじめに
Burp Suiteシリーズのこの第2部では、BurpSuiteプロキシを使用してブラウザからのリクエストからデータを収集する方法を学びます。インターセプトプロキシがどのように機能するか、およびBurpSuiteによって収集されたリクエストとレスポンスのデータを読み取る方法について説明します。
ガイドの第3部では、プロキシによって収集されたデータを実際のテストに使用する方法の現実的なシナリオについて説明します。
収集したデータを使用できるBurpSuiteに組み込まれているツールは他にもありますが、それらについてはシリーズの第4部と最後のパートで説明します。
トラフィックの傍受
Burp Suiteのプロキシは、インターセプトプロキシと呼ばれるものです。つまり、プロキシを通過するすべてのトラフィックには、プロキシユーザーがキャッチして手動で渡すオプションがあります。これにより、各リクエストを手動で検査し、それに対応する方法を選択できます。
これはケースごとに有効な場合もありますが、非常に これを実際のプロの侵入テストの一部として使用している場合、何かが間違っていることはユーザーには明らかです。
したがって、一度に大量のトラフィックをキャプチャし、トラフィックの流れを監視するか、後でコーミングする場合は、プロキシのインターセプト機能をオフにして、トラフィックが自由に流れるようにすることができます。
インターセプトを切り替えるには、タブの一番上の行にある[プロキシ]タブに移動し、次に2番目の行にある[インターセプト]タブに移動します。デフォルトでは、3番目のボタンは「インターセプトがオンです」と表示されます。それをクリックして、傍受のオンとオフを切り替えます。今のところ、そのままにしておきます。
Firefoxで、WordPressサイトのlocalhost
に移動します。 。タブに回転する「読み込み中」アイコンが表示され、Firefoxがどこにも行かないはずです。これは、WebサーバーへのリクエストがBurpのプロキシによってキャッチされたためです。
BurpSuiteウィンドウを確認してください。これで、[インターセプト]タブにリクエストデータが表示されます。これは、ブラウザからWordPressサーバーに送信され、移動先のページを要求する情報です。サーバーから返されるHTMLやその他のものは表示されません。 [プロキシ]の下の[オプション]タブに移動し、[次のルールに基づいて応答をインターセプトする]と[またはリクエストがインターセプトされた]をオンにすると、応答データを取得できます。
<中央>
いずれにせよ、「インターセプト」画面の新しいタブを見ることができます。 Raw、Params、Headersが最も役立ちます。これらはすべて基本的に同じデータを表示しますが、異なる形式で表示します。 Rawは、送信された生の要求を表示します。 Paramsは、リクエストとともに送信されたパラメータを表示します。これは、ログインの詳細などの有用な情報が簡単に見つかる場所です。ヘッダーには、リクエストヘッダーのみが表示されます。これは、リクエストにHTMLが含まれている場合に役立ちます。
リクエストをサーバーに転送するには、「転送」ボタンを押します。応答をインターセプトするようにBurpを設定すると、画面全体に表示されます。そうしないと、データがサーバーに送信されたときにデータが消えてしまいます。
応答データは似ていますが、「HTML」などの新しいセクションがいくつかあります。これには、サーバーから送信された生のHTMLが含まれています。 「レンダリング」というタブもあるはずです。 BurpはHTML応答のレンダリングを試みることができますが、CSS、JavaScript、または静的アセットは含まれません。この機能は、返されるページの構造を簡単に理解できるようにすることのみを目的としています。もう一度[転送]をクリックすると、Firefoxに応答が送信されます。
プロキシトラフィック
傍受をオフにします。この次の部分では、プロキシを通過するトラフィックを監視するだけです。ダミーのWordPressサイトを閲覧します。必要に応じて、サイトを埋めるための意味のないコンテンツを見つけて、BurpSuiteを通過するより現実的なトラフィックフローを確認できるようにします。
Burp Suiteのプロキシを通過するすべてのトラフィックは、[プロキシ]の下の[HTTP履歴]タブにあります。デフォルトでは、リクエストは昇順で一覧表示されます。 #
をクリックすると、これを変更して最新のトラフィックを一番上に表示できます。 表の左端にあるリクエストID列の上部にあります。
必ずWordPressサイトをクリックして、BurpSuiteをご覧ください。 HTTP履歴のリストがすぐにいっぱいになります。驚かれるかもしれないのは、収集されるリクエストの量です。ブラウザは通常、クリックごとに複数のリクエストを行います。これらのリクエストは、ページ上のアセットに対するものでも、リダイレクトの一部として提供されるものでもかまいません。インストールしたテーマやフォントによっては、他のドメインにリクエストが送信されることもあります。ほとんどのウェブサイトは独立してホストされているアセットとコンテンツ配信ネットワークを利用しているため、実際のシナリオでは、これは非常に一般的です。
リクエストを見る
確認するリクエストを選択してください。 MIMEタイプがHTMLのHTMLを見つけることができれば最高です。これは、それがWebサイトページの1つに対するリクエストであり、参照できるHTMLが含まれていることを意味します。
最初に1つを選択すると、生の形式でリクエストが表示されます。 rawリクエストは、Firefoxからサーバーに送信されたすべての情報を保持します。これは、傍受したリクエストと同じです。今回は、輸送中ではなく、事後に見ていきます。
生のリクエストを使用して重要な情報を取得することもできますが、ほとんどの場合、[パラメータ]タブと[ヘッダー]タブの方がはるかに読みやすくなります。パラメータを見てください。これには、ブラウザがブラウザに渡す必要のある変数情報が含まれます。多くの基本的なHTMLページの場合、おそらくCookieが含まれているだけです。フォームを送信することを決定すると、フォームに含まれる情報がここに表示されます。
<中央>
ヘッダーには、リクエスト自体、そのターゲット、およびブラウザに関する情報が含まれています。ヘッダーは、リクエストがGETリクエストかPOSTリクエストかを指定します。また、どのサーバーまたはWebサイトに接続しているかも通知されます。リクエストには、サーバーが使用するブラウザー情報と、サーバーが応答する必要のある言語が含まれます。いくつかの重複があり、ここにもいくつかのCookie情報が表示されます。また、ブラウザがサーバーから受け入れる情報またはファイルの種類を確認すると便利な場合があります。それらは「同意する」の下にリストされています。
応答を見る
「応答」タブをクリックします。これはすべて、利用可能な情報の種類という点でリクエストと非常によく似ています。リクエストと同様に、生のレスポンスにはかなりまとまりのない形式の情報が読み込まれます。使用することはできますが、他のタブで分解することをお勧めします。
ヘッダーでブラウザ情報を検索する代わりに、サーバー情報を検索します。ヘッダーは通常、サーバーから受信したHTTP応答の種類を示します。また、実行されているWebサーバーのタイプと、ページを強化しているバックエンド言語に関する情報もあります。この場合はPHPです。
[HTML]タブには、サーバーがページをレンダリングするためにブラウザに送信した生のHTMLが含まれます。探しているものに応じて、ここで何か面白いものが見つかる場合と見つからない場合があります。これは、ブラウザからページのソースを表示することとそれほど違いはありません。
まとめ
大丈夫。 BurpSuiteをインストールして設定しました。 Firefoxからのリクエストをプロキシし、傍受しました。また、Burp Suiteが複数のリクエストを収集し、有用な情報について評価することを許可しました。
次のガイドでは、これを使用して、WordPressのログインページに対するブルートフォース攻撃の情報を収集します。