はじめに
Burp Intruder で攻撃を実行した後、次の重要なステップは、潜在的な脆弱性を特定するために結果を分析することです。結果テーブルは豊富な情報を提供しますが、セキュリティ上の欠陥を見つけるためには、それを効率的にソート、フィルタリング、および検査する方法を知ることが重要です。
この実験 (Lab) では、完了した Intruder 攻撃を分析するための基本的なテクニックを学びます。分析ワークフローにのみ焦点を当てるため、攻撃結果が既に含まれている事前ロードされた Burp Suite プロジェクトファイルを使用します。Burp Suite の起動方法、プロジェクトの開き方、および組み込みツールを使用して結果を検査する方法を学びます。
完了した Intruder 攻撃の結果テーブルを表示する
このステップでは、Burp Suite を起動し、既存のプロジェクトを開いて、事前に実行された攻撃の結果を表示します。これはあらゆる分析の出発点となります。
まず、デスクトップアプリケーションメニューからターミナルを開きます。
次に、ターミナルで以下のコマンドを実行して Burp Suite Community Edition を起動します。ロードにはしばらく時間がかかる場合があります。
burpsuite
起動ダイアログが表示されます。今回は事前に設定されたプロジェクトを使用するため、Open an existing project を選択し、Next をクリックします。
ファイル選択ウィンドウで、/home/labex/project ディレクトリに移動します。burp-intruder-results.bpr という名前のファイルが表示されます。このファイルを選択し、Open をクリックします。
最後のダイアログ画面で Start Burp をクリックします。
Burp Suite がロードされたら、Intruder タブに移動します。攻撃が既に実行されており、Results サブタブにデータが入力されていることがわかります。Request、Payload、Status、Length などの利用可能な列に注目してみてください。
「Status」コードで結果をソートする
このステップでは、HTTP ステータスコードで攻撃結果をソートする方法を学びます。ソートは、類似したレスポンスをグループ化し、外れ値を見つけるための迅速な方法です。異なるステータスコードは異なるアプリケーションの動作を示す可能性があり、分析に役立ちます。
Intruder > Results タブで、Status という名前の列ヘッダーを見つけます。
Status 列ヘッダーをクリックします。テーブルは、HTTP ステータスコードに基づいてすべての結果を昇順にソートします。ヘッダーを再度クリックすると、降順にソートされます。
200 OK 以外のステータスコードがないか確認できるように、テーブルをソートしてください。例えば、302 Found は成功したログインリダイレクトを示す可能性があり、403 Forbidden や 500 Internal Server Error も興味深く、さらなる調査に値する可能性があります。これらのコードをグループ化することで、簡単に見つけることができます。
「Length」で結果をソートして異常を検出する
このステップでは、レスポンス長で結果をソートして異常を特定します。パスワード推測やコンテンツディスカバリなどの多くの攻撃タイプでは、成功した試行は、失敗した試行とは異なる長さのレスポンスをもたらすことがよくあります。
Intruder > Results タブで、Length という名前の列ヘッダーを見つけます。
Length 列ヘッダーをクリックして結果をソートします。値を観察してください。多くの場合、まったく同じ長さのレスポンスが多数表示されるでしょう。これらは通常、サーバーからのベースラインとなる「失敗した」または「デフォルトの」レスポンスを表します。
Length ヘッダーを再度クリックして、逆の方向にソートします。著しく異なる長さ(はるかに長いか、はるかに短いか)のレスポンスは、より詳細な調査に値する異常です。これは、大規模なデータセットで興味深い結果を見つけるための最も効果的な方法の 1 つです。
結果をクリックして完全なリクエストとレスポンスを表示する
このステップでは、テーブルから興味深い結果を選択して、完全な HTTP リクエストとレスポンスを表示します。ソートによって潜在的な異常を特定した後、何が起こったのかを理解するために生のトラフィックを調べる必要があります。
まず、結果テーブルで興味深い行を特定します。これは、ユニークなステータスコードを持つ行や、他のものから際立ったレスポンス長を持つ行である可能性があります。
その単一行をクリックして選択します。
行が選択されると、結果テーブルの下にあるペインが表示されます。Request と Response のタブセットが表示されます。
- Request タブをクリックすると、Burp がサーバーに送信した正確な HTTP リクエストが表示されます。その特定のリクエストのために注入されたペイロードを確認できます。
- Response タブをクリックすると、サーバーの完全なレスポンスが表示されます。
リクエストとレスポンスを切り替えることで、特定のペイロードが異常なレスポンスを引き起こした理由を分析できます。たとえば、異なるレスポンス長は、エラーメッセージや、レスポンスボディに表示される成功したログインメッセージによるものである可能性があります。
「Filter」バーを使用して興味のない結果を非表示にする
このステップでは、フィルターバーを使用して興味のない結果を非表示にします。攻撃が数千もの結果を生成する場合、手動でのソートやスクロールは非効率的です。フィルターは、ビューを重要なものだけに絞り込むための強力なツールです。
結果テーブルのすぐ上に、Filter バーがあります。この機能を使用すると、さまざまな基準に基づいて結果を表示または非表示にできます。
実践的な例を試してみましょう。長さでソートした後、おそらく失敗した試行の非常に一般的なレスポンス長に気づいたでしょう。その長さが 4850 だと仮定します。
- フィルターのテキストボックスに
4850と入力します。 - Hide ラジオボタンをチェックします。
- 結果テーブルは、長さが
4850のすべてのレスポンスを非表示にし、残った少数の異常な結果をはるかに簡単に見ることができるようになります。
ステータスコードやレスポンス内の検索用語などの他の属性でフィルターすることもできます。フィルターをクリアするには、入力ボックスからテキストを削除するだけです。フィルターを試して、分析に集中するのにどのように役立つかを確認してください。
まとめ
この実験では、Burp Intruder で攻撃結果を分析するための基本的なテクニックを学びました。これらのスキルは、自動化された攻撃から効率的に脆弱性を見つけるために不可欠です。
まず、既存の Burp プロジェクトを開き、Intruder の結果テーブルに移動しました。次に、HTTP ステータスコードとレスポンス長の両方で結果をソートして、異常をすばやく特定する練習をしました。次に、任意の特定の結果の完全なリクエストとレスポンスを検査して、サーバーの動作を理解する方法を学びました。最後に、強力なフィルター機能を使用してノイズを非表示にし、最も興味深い結果に焦点を合わせました。
この分析ワークフローを習得することで、自動化されたツールの出力を処理し、セキュリティ上の欠陥を特定する能力が大幅に向上します。
