Burp Scannerによる手動テストの強化

Burp Scannerによる手動テストの強化

もし、手動テストのワークフローの一部として日常的にBurp Scannerを使っていないのであれば、想像以上に時間と労力を無駄にしています。よく知られていない一部の機能を利用すれば、自分の専門的な知識や勘を、Burp Scannerの体系的なテストで補完できます。そうすれば、より多くの領域を網羅できるだけでなく、面倒な下準備に時間を費やすことなく重要な部分に時間を使えます。

特定リクエストのスキャン

興味深い機能や挙動を見つけたとき、そのリクエストを本能的にRepeaterやIntruderに送信し、さらに調査をするでしょう。Burp Scannerへのリクエスト送信が有益な場合もあります。他の場所で自分のスキルを活用している間に、テストにおける反復的な作業を実行させておけます。

ステップ1: ラボを開く

Proxy > インターセプトに移動し、Burpブラウザを起動します。それで次のラボにアクセスします:

https://portswigger.net/web-security/sql-injection/blind/lab-conditional-responses

すると、意図的に脆弱性を作り込んだオンラインストアが開きます。

意図的に脆弱性を作り込んだオンラインストア

ステップ2: 興味深いリクエストを探す

いずれかの製品ページを参照します。

Burpで、Proxy > HTTP履歴タブを開きます。GET /product?productId=Xリクエストに、クエリーパラメータといくつかのcookieが含まれていて、すべてをユーザが操作できることを確認してください。そのため、入力ベースの脆弱性を探すのに適しています。

ステップ3: クイックスキャンを起動する

メッセージエディタパネルまたは通信の一覧から、このリクエストを右クリックし、アクティブスキャン実行を選択します。

アクティブスキャンの実行

Burp Scannerは、デフォルトの設定を使用してすぐに診断のスキャンを実行し始めます。

または、リクエストのスキャン方法をより細かく制御したい場合は、右クリックしてスキャンを選択します。すると、スキャンランチャが開き、スキャン開始前に設定を調整できます。

ユーザ定義の挿入ポイントのスキャン

指定したリクエストをスキャンする方法は既に学びましたが、興味のある特定の挿入ポイントのみをスキャンすると、さらに最適化ができます。

ステップ1: Intruderへリクエストを送信する

前回のチュートリアルで使用したのと同じGETリクエストをBurp Intruderに送信し、Intruderタブに移動します。

ステップ2: ペイロード挿入ポイントを設定する

見ての通り、Burp Intruderは既に3つの挿入ポイントの候補を特定しています。Burp Scannerはデフォルトでこれよりもさらに多くのポイントを使用しています。

デフォルトのペイロードポジションをクリアし、productIdTrackingIDのみに新たなペイロードポジションを設定します。

ペイロードポジションの設定

ステップ3: スキャンを開始する

リクエストを右クリックし、定義された挿入ポイントをスキャンを選択します。

定義された挿入ポイントのスキャン

これで、明示的に定義した2つのポジションにのみペイロードを配置するスキャンを起動できます。これにより、Burp Scannerが行うリクエスト数を大幅に減らせます。

ステップ4: 結果を見る

この方法は驚くほど早く結果が出てきて、わずか数秒で何かが得られます。ダッシュボードタブで、既にスキャンが終了しSQLインジェクションの脆弱性が発見されていることがわかります。

概要

これで、手動テスト時のBurp Scannerの使い方を学びました。

ここで学んだことに加えて、さらにヒントがあります: