もし、手動テストのワークフローの一部として日常的にBurp Scannerを使っていないのであれば、想像以上に時間と労力を無駄にしています。よく知られていない一部の機能を利用すれば、自分の専門的な知識や勘を、Burp Scannerの体系的なテストで補完できます。そうすれば、より多くの領域を網羅できるだけでなく、面倒な下準備に時間を費やすことなく重要な部分に時間を使えます。
興味深い機能や挙動を見つけたとき、そのリクエストを本能的にRepeaterやIntruderに送信し、さらに調査をするでしょう。Burp Scannerへのリクエスト送信が有益な場合もあります。他の場所で自分のスキルを活用している間に、テストにおける反復的な作業を実行させておけます。
Proxy > インターセプトに移動し、Burpブラウザを起動します。それで次のラボにアクセスします:
https://portswigger.net/web-security/sql-injection/blind/lab-conditional-responses
すると、意図的に脆弱性を作り込んだオンラインストアが開きます。
いずれかの製品ページを参照します。
Burpで、Proxy > HTTP履歴タブを開きます。GET /product?productId=X
リクエストに、クエリーパラメータといくつかのcookieが含まれていて、すべてをユーザが操作できることを確認してください。そのため、入力ベースの脆弱性を探すのに適しています。
メッセージエディタパネルまたは通信の一覧から、このリクエストを右クリックし、アクティブスキャン実行を選択します。
Burp Scannerは、デフォルトの設定を使用してすぐに診断のスキャンを実行し始めます。
または、リクエストのスキャン方法をより細かく制御したい場合は、右クリックしてスキャンを選択します。すると、スキャンランチャが開き、スキャン開始前に設定を調整できます。
指定したリクエストをスキャンする方法は既に学びましたが、興味のある特定の挿入ポイントのみをスキャンすると、さらに最適化ができます。
前回のチュートリアルで使用したのと同じGET
リクエストをBurp Intruderに送信し、Intruderタブに移動します。
見ての通り、Burp Intruderは既に3つの挿入ポイントの候補を特定しています。Burp Scannerはデフォルトでこれよりもさらに多くのポイントを使用しています。
デフォルトのペイロードポジションをクリアし、productId
とTrackingID
のみに新たなペイロードポジションを設定します。
リクエストを右クリックし、定義された挿入ポイントをスキャンを選択します。
これで、明示的に定義した2つのポジションにのみペイロードを配置するスキャンを起動できます。これにより、Burp Scannerが行うリクエスト数を大幅に減らせます。
この方法は驚くほど早く結果が出てきて、わずか数秒で何かが得られます。ダッシュボードタブで、既にスキャンが終了しSQLインジェクションの脆弱性が発見されていることがわかります。
これで、手動テスト時のBurp Scannerの使い方を学びました。
ここで学んだことに加えて、さらにヒントがあります: