【Burp Suite】 第1章 基礎理解編

 第1部では、Burp Suiteを使用する前に理解しておくべき基本事項と、Burp Suiteの導入から基本操作までを扱います。


 Burp Suiteは多機能なツールですが、その多くの機能は「WebブラウザとWebサーバの間を流れる通信を観察し、必要に応じて変更し、再送する」という基本的な仕組みの上に成り立っています。そのため、Burp Suiteを正しく使いこなすためには、まずこの通信の流れと、Burp Suiteがそのどこに位置するツールなのかを理解することが重要です。

 Burp Suiteを初めて使用する場合、多くの人は最初にいくつかの点で戸惑います。Burp Suiteの画面には多くのタブがあり、どこから見ればよいのかわからない、Interceptをオンにすると通信が止まりブラウザが表示されなくなる、HTTP historyに大量の通信が表示され重要な通信がどれかわからない、Proxy、Target、Repeater、Intruderの違いがわからない、証明書の設定やHTTPS通信の仕組みが理解しづらい、といった点です。

 これらの問題の多くは、Burp Suiteの操作方法そのものではなく、Burp Suiteの動作の仕組みやWeb通信の基本を十分に理解しないまま操作してしまうことが原因です。逆に言えば、Burp Suiteの位置づけと通信の流れを理解すれば、多くの機能の意味が自然と理解できるようになります。

 第1部では、まずBurp Suiteとはどのようなツールなのか、Web通信の中でどのような役割を持つのかを整理します。その後、Burp Suiteのインストール、プロジェクトの考え方、画面構成、ブラウザとの連携、証明書の設定など、Burp Suiteを使い始めるために必要な基本操作を順番に説明します。

 この段階では、すべての機能を覚える必要はありません。重要なのは、Burp Suiteはブラウザとサーバの間に入るプロキシツールであること、リクエストとレスポンスという形で通信がやり取りされていること、Burp Suiteではその通信を記録・表示・変更・再送できること、Proxy、Target、Repeaterなどの機能にはそれぞれ異なる役割があること、HTTPS通信を見るためには証明書の設定が必要になること、といった基本を理解することです。

 これらの基本を理解することが、この後の章で扱うProxy、Target、Repeater、Intruderなどの機能を理解するための土台になります。

 Burp Suiteの学習では、いきなりIntruderや高度な設定から入るよりも、まずProxyで通信を観察し、HTTP historyの見方を理解し、Repeaterでリクエストを再送できるようになることが重要です。そのための準備として、この第1部では「Burp Suiteを正しく起動し、ブラウザ通信を捕捉し、画面構成と基本操作を理解する」ことを目標とします。

 第1部を読み終える頃には、Burp Suiteを起動してプロジェクトを作成できること、ブラウザの通信をBurp Suiteに通すことができること、HTTPS通信をBurp Suiteで確認できること、Proxyタブで通信を確認できること、HTTP historyの基本的な見方がわかること、Burp Suiteの各タブの役割を大まかに説明できること、これらができる状態になることを目指します。

 ここまで理解できれば、Burp Suiteの基礎はほぼ身についたと言えます。第2部以降では、Proxyの詳細設定やRepeater、Intruderなど、各機能をより具体的に見ていきます。

 まずはこの第1部で、Burp Suiteを使うための土台をしっかり固めていきましょう。

1-1-1 Burp Suiteとは

 Burp Suiteは、WebブラウザとWebサーバの間の通信を取得、表示、変更、再送することができるWeb通信解析ツールです。PortSwigger社によって開発されており、Webアプリケーションの動作確認やセキュリティ診断の分野で広く利用されています。

 通常、WebブラウザでWebサイトを閲覧するとき、ブラウザはWebサーバへリクエストを送り、サーバはレスポンスを返します。このやり取りはHTTPまたはHTTPSという通信プロトコルによって行われます。ブラウザの開発者ツール(例:Networkパネル)でも、リクエスト/レスポンスのヘッダーや本文などを確認できます。一方でBurp Suiteは、プロキシとして通信を中継し、インターセプトや改変、他ツールへの送付など“テスト向け操作”を統合して行える点が強みです。

 Burp Suiteは、ブラウザとサーバの間に入り込むプロキシとして動作します。ブラウザの通信を一度Burp Suiteに通し、その通信を確認、記録、変更できるようにするツールです。Burp Suiteを利用すると、ブラウザが送信したリクエストを確認する、サーバが返したレスポンスを確認する、リクエストの内容を変更して再送する、同じリクエストを何度も送信する、複数のレスポンスを比較する、通信履歴を保存するといったことが可能になります。

 Burp Suiteは単なる通信閲覧ツールではなく、通信の観察、整理、変更、再送、比較などを行うための複数の機能を持った統合ツールです。Proxy、Target、Repeater、Intruderなどの機能が一つのアプリケーションにまとめられており、Web通信を総合的に扱うことができます。

 Burp Suiteを理解するうえで最も重要な点は、Burp SuiteはWebサーバに直接接続するツールではなく、ブラウザとサーバの間に入り、通信を中継するツールであるということです。この位置関係を理解すると、Burp Suiteの各機能の意味が理解しやすくなります。

1-1-2 Burp Suiteでできること

 Burp Suiteを使用すると、Webアプリケーションの通信に対してさまざまな操作を行うことができます。代表的な機能として、通信の取得と表示、通信の一時停止、リクエストの再送信、大量リクエストの送信、レスポンスの比較などがあります。

 まず、最も基本的な機能は通信の取得と表示です。ブラウザから送信されたHTTPリクエストと、サーバから返されるHTTPレスポンスを一覧として確認できます。これにより、画面の表示やボタン操作の裏側で、どのような通信が行われているかを確認できます。

 次に、通信の一時停止、いわゆるインターセプト機能があります。Burp Suiteでは、ブラウザから送信されるリクエストや、サーバから返されるレスポンスを一時的に停止させることができます。停止した通信の内容を確認し、必要に応じて内容を変更してからサーバへ送信することができます。

 また、リクエストの再送信も重要な機能です。一度取得したリクエストを保存し、同じリクエストを何度も送信したり、一部のパラメータを変更して再送したりすることができます。これにより、入力値の違いによるサーバの挙動の違いを確認することができます。

 さらに、大量のリクエスト送信やレスポンス比較などの機能もあります。複数の値を順番に送信して結果を確認したり、異なる条件で取得したレスポンスの差分を比較したりすることができます。

 これらの機能を組み合わせることで、Webアプリケーションの通信を詳細に観察し、動作を確認することができます。

Burp Suiteの主な機能を簡単に整理すると、次のようになります。

1-1-3 どのような利用者に向いているか

 Burp Suiteは主にWebアプリケーションの通信を扱う人に向いているツールです。具体的には、Webアプリケーションのセキュリティ診断を行う人、Webアプリケーションの開発者、テスターや品質保証担当者、Web通信の仕組みを学びたい学習者などが対象になります。

 まず、Webアプリケーションのセキュリティ診断を行う人です。Burp Suiteはセキュリティ診断の現場で広く利用されており、リクエスト改ざん、認証確認、入力値検証、API通信確認など、さまざまな検証作業で使用されます。通信内容を直接確認し、パラメータを変更しながら挙動を確認できるため、診断作業には欠かせないツールの一つとなっています。

 次に、Webアプリケーションの開発者です。開発中のアプリケーションがどのような通信を行っているかを確認したり、想定通りのパラメータが送信されているか、Cookieが正しく設定されているか、APIが正しいレスポンスを返しているかなどを確認する際に、Burp Suiteは役立ちます。ブラウザの開発者ツールだけでは確認しづらい通信も、一覧で整理して確認することができます。

 また、テスターや品質保証担当者にも有用です。画面操作だけでは分からない通信の内容を確認することで、不具合の原因調査や動作確認をより詳細に行うことができます。特に、特定の操作を行ったときにどの通信が発生しているかを追跡する場面では、Burp Suiteが役立ちます。

 さらに、Web通信の仕組みを学びたい学習者にも適しています。HTTPリクエストやレスポンス、Cookie、セッション、JSON通信などを、実際の通信を見ながら理解することができるため、Webの仕組みを学ぶ教材としても有用です。

 まとめると、Burp SuiteはWebアプリケーション診断を行う人、Webアプリケーション開発者、テスターや品質保証担当者、Web通信の仕組みを学びたい人、API通信を確認したい人、ログインやセッションの動作を確認したい人に向いているツールです。

 一方で、通常のWeb閲覧や一般的なパソコン操作だけを行う人にとっては、Burp Suiteは必要になる場面は多くありません。Burp Suiteは、Webアプリケーションの通信内容そのものを扱う人向けの専門ツールと言えます。

1-1-4 無料版でできること

 Burp Suiteには、無料版であるCommunity Editionと、有料版であるProfessional Editionがあります。Burp Suiteをこれから学習する場合は、まず無料版でどこまでできるのかを理解しておくことが重要です。

 Burp Suite Community Editionでは、Burp Suiteの基本機能の多くを利用することができます。Proxyによる通信の取得、Interceptによる通信の一時停止、HTTP historyによる通信履歴の確認、Targetによるサイト構造の確認、Repeaterによるリクエスト再送信、Intruderによる簡易的なリクエスト送信、Comparerによる差分比較、Decoderによるエンコードやデコード、Extensionsによる拡張機能の追加など、Burp Suiteの基本的な機能は無料版でも利用することができます。

 このように、通信を見る、変更する、再送する、比較するといったBurp Suiteの基本的な使い方は、無料版でも十分に行うことができます。Burp Suiteの操作やWeb通信の仕組みを学習する目的であれば、無料版だけでも十分に学習することが可能です。

 一方で、無料版ではいくつかの機能に制限があります。特にIntruderの速度制限や、自動スキャン機能が利用できない点などが、有料版との大きな違いになります。ただし、これらの機能は主に大規模な診断や効率的な検証を行うためのものであり、Burp Suiteの基本操作を学ぶ段階では必須ではありません。

 そのため、Burp Suiteをこれから学習する場合は、まず無料版を利用し、Burp Suiteの基本機能と通信の見方を理解することが推奨されます。

1-1-5 Professional版との主な違い

 Burp Suite Professional Editionは、Community Editionの機能に加えて、より高度な機能や効率化機能が追加された有料版です。主な違いは、自動化機能と効率化機能の有無にあります。

 Professional版では、自動スキャン機能、Intruderの高速送信、保存機能の強化、高度な検索やフィルタ、拡張機能の充実、セッション管理機能の強化、プロジェクト管理機能、Burp Collaborator機能、各種診断補助機能などが追加されています。

 特に大きな違いは、自動スキャン機能とIntruderの速度制限の有無です。Professional版では多くのリクエストを高速に送信することができ、診断作業や検証作業を効率的に行うことができます。

 ただし、重要なのは、Burp Suiteの基本的な使い方や通信の理解そのものは、Community EditionでもProfessional Editionでも変わらないという点です。Burp Suiteの操作やHTTP通信の理解、Proxy、Repeater、Targetなどの基本機能の使い方は、どちらの版でも共通です。

 そのため、これからBurp Suiteを学ぶ段階では、まずCommunity Editionで基本操作と通信の見方を理解し、その後必要に応じてProfessional Editionを検討するという流れが一般的です。

 本書では、Community Editionを前提としてBurp Suiteの基本機能を解説していきますが、必要に応じてProfessional Editionとの違いにも触れていきます。

1-2 Webアプリケーション診断におけるBurpの役割

 Burp Suiteを理解するうえで最も重要なのは、Burp SuiteがWebアプリケーションのどこに位置するツールなのかを理解することです。Burp SuiteはWebサーバに直接接続するツールではなく、ブラウザとサーバの間に入り、通信を中継しながら内容を確認・変更するツールです。

 Webアプリケーション診断では、画面の見た目ではなく、ブラウザとサーバの間でやり取りされている通信の内容を確認することが重要になります。Burp Suiteは、その通信を可視化し、操作できるようにするためのツールです。

 この章では、Burp Suiteの最も基本となる役割である、代理通信、インターセプト、通信の観察、改ざんと再送について説明します。

1-2-1 プロキシの仕組み

 通常、WebブラウザでWebサイトにアクセスすると、ブラウザは直接Webサーバへ通信を行います。このとき、ブラウザはHTTPリクエストを送信し、サーバはHTTPレスポンスを返します。

 Burp Suiteを使用する場合、ブラウザは直接サーバへ通信するのではなく、まずBurp Suiteへ通信を送ります。そしてBurp Suiteがブラウザの代わりにサーバへ通信を送り、サーバからのレスポンスを受け取ってブラウザへ返します。つまり、Burp Suiteはブラウザとサーバの間に入り、通信を中継する役割を持ちます。

 この仕組みをプロキシと呼びます。Burp Suiteはプロキシとして動作し、すべての通信を一度Burp Suiteに通すことで、通信の内容を確認できるようになります。

 Burp SuiteをProxyとして用いる場合、ブラウザとサーバ間の通信を中継し、その過程でインターセプト/改変できます。一方で、RepeaterやIntruderではBurpがHTTP(またはWebSocket)メッセージを編集・生成して送信するため、『常にブラウザが送信した通信だけを扱う』とは限りません。

1-2-2 代理通信とインターセプト

 Burp SuiteのProxy機能では、ブラウザから送信されたリクエストを一時的に停止させることができます。この機能をインターセプトと呼びます。

 通常、ブラウザから送信されたリクエストはすぐにサーバへ送信されますが、Interceptを有効にすると、リクエストはBurp Suite上で一度停止します。ユーザーはその停止したリクエストの内容を確認し、必要に応じて内容を変更してからサーバへ送信することができます。

 Interceptを利用すると、送信されるパラメータの確認、Cookieの確認、リクエストヘッダの確認、パラメータの書き換え、Cookieの変更、リクエスト内容の変更といった操作を行うことができます。

 InterceptはProxyの主要機能で、必要に応じてリクエスト/レスポンスを停止し、挙動を観察・改変できます。目的や対象によってはInterceptを無効にし、HTTP historyから必要な通信を選んで解析・再送する運用も有効です。

1-2-3 リクエストとレスポンスの観察

 Burp Suiteでは、ブラウザとサーバの間でやり取りされる通信を記録し、一覧として表示することができます。この機能はHTTP historyと呼ばれます。

 HTTP historyでは、どのURLへアクセスしたか、GETかPOSTか、ステータスコード、レスポンスのサイズ、MIMEタイプ、リクエストの内容、レスポンスの内容などの情報を確認できます。

 これにより、画面の操作と通信の関係を理解することができます。例えば、ログインボタンを押したときにどのURLへPOSTリクエストが送信されているのか、検索を行ったときにどのパラメータが送信されているのかなどを確認できます。

 Burp Suiteを使う上で重要なのは、まずHTTP historyを見て通信の全体像を把握することです。どの画面でどの通信が発生しているのかを理解することで、その後のRepeaterやIntruderなどの機能を効果的に使えるようになります。

1-2-4 改ざんと再送の基本

 Burp Suiteでは、一度取得したリクエストを保存し、そのリクエストを再度送信することができます。この機能はRepeaterで行います。

 Repeaterを使用すると、同じリクエストを何度も送信する、パラメータを変更して送信する、Cookieを変更して送信する、ヘッダを変更して送信する、レスポンスの違いを確認するといった操作が可能になります。

 例えば、IDの値を変更すると別のデータが表示されるか、ログインしていない状態でもデータを取得できるか、権限のないユーザーでも操作できるか、不正な値を送信した場合にエラーになるか、といった確認を行うことができます。
 このように、Burp Suiteでは通信を観察するだけでなく、変更して再送することで、Webアプリケーションの動作を詳しく確認することができます。

1-3 Burp Suiteの画面構成

 Burp Suiteは多くの機能を持つツールであり、画面には複数のタブやペインが配置されています。初めてBurp Suiteを使用する場合、どの画面で何を行うのかが分かりにくいことがあります。そのため、まずBurp Suiteの画面全体の構成を理解することが重要です。

 Burp Suiteの画面は大きく分けて、メイン画面、上部タブ、各タブ内の画面構成、下部ペインで構成されています。この節では、Burp Suiteの画面構成を順番に説明します。

1-3-1 メイン画面の構成

 Burp Suiteを起動すると、メイン画面が表示されます。メイン画面は主に、メニューバー、上部タブ、作業エリア、下部ペイン、ステータスバーといった領域で構成されています。

 メニューバーでは、プロジェクトの保存、設定画面の表示、拡張機能の管理などを行います。上部タブでは、Burp Suiteの各機能を切り替えます。中央の作業エリアには、選択しているタブの画面が表示されます。下部ペインには、選択した通信のリクエストやレスポンスの詳細が表示されます。

 Burp Suiteは、上部タブで機能を切り替え、中央で一覧を確認し、下部で通信の詳細を見るという構造になっています。この画面構成を理解することが、Burp Suiteを使いこなすための第一歩になります。

1-3-2 上部タブ(Dashboard / Target / Proxy など)

 Burp Suiteの上部には、各機能を切り替えるためのタブが並んでいます。主なタブは次のとおりです。

 Burp Suiteを使用する際は、これらのタブを切り替えながら作業を行います。特に使用頻度が高いのは、Proxy、Target、Repeater、Intruderです。

Burp Suiteの作業は、一般的に次の流れで行います。

  1. Targetでサイト構造を確認する

  2. Proxyで通信を取得する

  3. Intruderで複数のリクエストを送信する

  4. Repeaterでリクエストを再送する

このように、各タブにはそれぞれ役割があります。

1-3-3 Proxy画面の構成

 ProxyタブはBurp Suiteの中で最も重要な画面です。ブラウザとサーバの間の通信を取得し、確認するために使用します。

Proxyタブの主なサブタブは次のとおりです。

Interceptでは、リクエストやレスポンスを一時停止して内容を確認・変更できます。

HTTP historyでは、これまでに取得した通信を一覧で確認できます。

Proxy settingsでは、インターセプトルールやTLS設定などを行います。

 Burp Suiteを使用する場合、まずProxyタブで通信を取得し、HTTP historyを確認する作業が基本になります。

1-3-4 Target画面の構成

 Targetタブでは、アクセスしたWebサイトの構造をツリー形式で確認することができます。Burp Suiteが取得した通信から、ディレクトリ構造やURL一覧を自動的に整理して表示します。

Targetタブの主な画面は次のとおりです。

Site mapでは、アクセスしたURLがツリー形式で表示されます。

Scopeでは、Burp Suiteで操作対象とするドメインやURL範囲を設定できます。

Targetタブを利用すると、対象Webアプリケーションの構造を把握しやすくなります。

1-3-5 Repeater / Intruder画面の構成

 RepeaterタブとIntruderタブは、取得したリクエストを再送したり、複数回送信したりするための画面です。

 Repeaterでは、1つのリクエストを手動で編集し、何度も送信することができます。リクエストの内容を変更しながらサーバの応答を確認する場合に使用します。

 画面は大きく、左側のRequest(リクエスト)と、右側のResponse(レスポンス)の2つの領域に分かれています。リクエストを編集してSendボタンを押すと、その結果のレスポンスが右側に表示されます。

 Repeaterは、パラメータの値を変更した場合の動作確認、権限の確認、入力値の検証など、サーバの挙動を詳しく確認する際に使用します。

 Intruderでは、特定のパラメータを変更しながら複数のリクエストを自動で送信することができます。多数の値を順番に送信して結果を確認する場合に使用します。

 Intruderの主な画面には、Positions、Payloads、Resource Pool、Attackなどがあります。Positionsでは変更する位置を指定し、Payloadsでは送信する値を設定します。Attackを実行すると、設定した値を使って複数のリクエストが送信されます。

 Intruderは主に、大量のリクエストを送信して結果を確認する場合に使用します。

1-3-6 下部ペイン(Request / Response / Pretty / Raw / Hex / Render / Inspector )

 Burp Suiteでは、HTTP historyやSite mapなどで通信を選択すると、画面下部に通信の詳細が表示されます。この部分を下部ペインと呼びます。
下部ペインには次のタブがあります。

 Requestタブでは、送信されたHTTPリクエストの内容を確認できます。
 Responseタブでは、サーバから返されたHTTPレスポンスの内容を確認できます。

 Prettyタブでは、HTTPメッセージを見やすく整形された形式で表示します。
 ヘッダやパラメータ、JSONなどが読みやすい形式で表示されるため、通常はPretty表示を使用して内容を確認します。

 Rawタブでは、HTTPメッセージを実際の通信に近い生の形式で表示します。
 改行やヘッダ構造をそのまま確認したい場合に使用します。

 Hexタブでは、通信データを16進数で表示します。
 バイナリデータや文字コードを確認する場合に使用します。

 Renderタブでは、レスポンスのHTMLをブラウザ表示に近い形で確認できます。
 HTMLの表示結果を簡易的に確認したい場合に使用します。

 Inspectorでは、パラメータ、Cookie、ヘッダ、リクエストボディなどが整理された形で表示されます。
 HTTPメッセージを構造化された形で確認できるため、内容の分析がしやすくなります。

 Burp Suiteを使用する際は、この下部ペインでリクエストとレスポンスの内容を確認する作業が重要になります。
 HTTP history、Repeater、Intruder など、多くの機能でこの下部ペインを使用して通信内容を確認します。

1-4 Burp Suiteの全体像(各機能の役割)

 Burp Suiteには複数の機能があり、それぞれ異なる役割を持っています。Burp Suiteを使いこなすためには、各機能を個別に覚えるのではなく、「どの機能がどの作業を担当しているのか」という全体像を理解することが重要です。

Burp SuiteでWebアプリケーションの通信を扱う場合、基本的な流れは次のようになります。

  1. Proxyで通信を取得する

  2. Targetでサイト構造を整理する

  3. Repeaterでリクエストを再送する

  4. Intruderで複数のリクエストを送信する

  5. Comparerでレスポンスを比較する

  6. Decoderでデータを変換する

  7. Sequencerでトークンのランダム性を確認する

  8. Extensionsで機能を追加する


 このように、Burp Suiteは複数のツールを組み合わせて使用する統合ツールです。この節では、それぞれの機能の役割を概要レベルで説明します。

1-4-1 Dashboard

 Dashboardは、Burp Suite全体の状態や通知、ログなどを確認するための画面です。Burp Suiteを起動すると、最初に表示される画面がDashboardです。

 Dashboardでは主に次の情報を確認できます。

  • Burp Suiteの状態

  • エラーや警告メッセージ

  • ログ情報

  • タスクの実行状況

  • アップデート通知

  • 拡張機能の状態

 Community EditionではDashboardを操作する場面はそれほど多くありませんが、Burp Suiteの状態確認やエラーの確認を行う際に使用します。Professional Editionではスキャン結果やタスク管理などもDashboardから確認できます。

 DashboardはBurp Suiteの操作を行う画面というよりも、Burp Suite全体の状況を確認する画面と考えると分かりやすいでしょう。

1-4-2 Proxy

 ProxyはBurp Suiteの中で最も重要な機能です。ブラウザとWebサーバの間の通信を取得し、内容を確認・変更することができます。

Proxyでは主に次のことができます。

  • 通信の取得

  • リクエストのインターセプト

  • レスポンスのインターセプト

  • 通信履歴の確認

  • WebSocket通信の確認

  • 通信の書き換え

  • 通信ログの保存

 Burp Suiteを使用する場合、作業の多くはProxyタブから始まります。まずProxyで通信を取得し、HTTP historyから対象のリクエストを見つけ、それをRepeaterやIntruderへ送信するという流れになります。
そのため、Burp Suiteの中心となる機能はProxyであると言えます。

1-4-3 Target

 Targetは、Burp Suiteが取得した通信からWebサイトの構造を整理して表示する機能です。アクセスしたURLやディレクトリ構造をツリー形式で表示します。

Targetでは主に次のことができます。

  • サイト構造の確認

  • URL一覧の確認

  • 対象範囲(Scope)の設定

  • サイトマップの整理

  • 特定のURLの検索

  • 通信のフィルタリング

 Webアプリケーション診断では、まず対象アプリケーションの構造を把握することが重要です。Targetタブを使用すると、どのディレクトリにどのページがあるのか、どのAPIが存在するのかなどを整理して確認できます。
 Targetはサイト構造を整理するための機能と覚えると分かりやすいです。

1-4-4 Repeater

 Repeaterは、取得したリクエストを何度も再送信するための機能です。リクエストの内容を手動で編集し、そのリクエストをサーバへ送信してレスポンスを確認できます。

Repeaterでは主に次のことができます。

  • リクエストの再送信

  • パラメータの変更

  • Cookieの変更

  • ヘッダの変更

  • レスポンスの確認

  • レスポンスの比較


 RepeaterはBurp Suiteの中でもよく使用する機能の一つです。Proxyで取得した通信をRepeaterへ送り、パラメータを変更しながらサーバの挙動を確認するという使い方が基本になります。

Repeaterは1つのリクエストを手動で何度も送信するためのツールです。

1-4-5 Intruder

 Intruderは、特定のパラメータを変更しながら複数のリクエストを自動で送信するための機能です。Repeaterが手動でリクエストを送信するツールであるのに対し、Intruderは自動で大量のリクエストを送信するツールです。

Intruderでは主に次のことができます。

  • 複数のパラメータを変更して送信

  • 数値や文字列を順番に送信

  • パスワードリストを使ったログイン試行

  • レスポンスの長さやステータスコードの確認

  • 特定の文字列の有無の確認


 IntruderはRepeaterよりも自動化されたツールであり、大量のリクエストを送信する場合に使用します。

 Intruderは複数のリクエストを自動送信するためのツールです。

1-4-6 Comparer

Comparerは、2つのリクエストまたはレスポンスを比較し、違いを確認するための機能です。

Comparerでは主に次のことができます。

  • 2つのレスポンスの差分比較

  • 2つのリクエストの差分比較

  • 文字単位での違いの表示

  • バイト単位での違いの表示

 例えば、ログイン前とログイン後のレスポンスの違いを比較したり、異なるパラメータを送信したときのレスポンスの違いを確認したりする際に使用します。
Comparerは2つのデータの違いを確認するためのツールです。

1-4-7 Decoder

Decoderは、URLエンコードやBase64などのエンコード・デコードを行うための機能です。

Decoderでは主に次のことができます。

  • URLエンコード / デコード

  • Base64エンコード / デコード

  • HTMLエンコード / デコード

  • Hexエンコード / デコード

  • ハッシュ計算

  • 文字列の変換

 Web通信では、パラメータがエンコードされた状態で送信されることがあります。そのようなデータを読みやすい形に変換したり、逆にエンコードして送信したりする場合にDecoderを使用します。

Decoderは文字列やデータを変換するためのツールです。

1-4-8 Sequencer

 Sequencerは、セッションIDやトークンなどのランダム性を確認するための機能です。サーバが生成するトークンが十分にランダムであるかどうかを統計的に分析します。

Sequencerでは主に次のことができます。

  • セッションIDの収集

  • トークンのランダム性分析

  • 統計分析

  • エントロピーの確認

 Sequencerは他の機能に比べて使用頻度は高くありませんが、セッションIDやCSRFトークンなどの強度を確認する際に使用します。
Sequencerはトークンのランダム性を分析するためのツールです。

1-4-9 Extensions

 Extensionsは、Burp Suiteに拡張機能を追加するための機能です。Burp Suiteは拡張機能を追加することで、さまざまな機能を追加できます。

Extensionsでは主に次のことができます。

  • 拡張機能のインストール

  • BApp Storeからの拡張機能追加

  • 拡張機能の有効化 / 無効化

  • 拡張機能の設定

 Burp SuiteにはBApp Storeという拡張機能のリポジトリがあり、そこからさまざまな拡張機能を追加できます。
ExtensionsはBurp Suiteに新しい機能を追加するためのツールです。

まとめ


1-5 Burpを使う上で理解しておきたい前提

 Burp SuiteはWebブラウザとWebサーバの間の通信を扱うツールです。そのため、Burp Suiteを正しく理解するためには、HTTPやHTTPS、Cookie、SessionなどのWeb通信の基本的な仕組みを理解しておく必要があります。

 この節では、Burp Suiteを使用する前提知識として、Web通信の基本について説明します。ここで説明する内容は、Burp Suiteの各機能を理解するうえで重要になります。

1-5-1 HTTPとは

 HTTP(HyperText Transfer Protocol)は、WebブラウザとWebサーバが通信するためのプロトコルです。Webページを表示したり、フォームを送信したり、   API通信を行ったりする際には、HTTP通信が使用されています。
 HTTP通信では、ブラウザがサーバへ「リクエスト」を送り、サーバがブラウザへ「レスポンス」を返します。この一連の流れをHTTP通信と呼びます。

通信の流れは次のようになります。

  1. ブラウザがリクエストを送信する

  2. サーバがリクエストを受信する

  3. サーバがレスポンスを返す

  4. ブラウザがレスポンスを受信する

 HTTPは基本的にテキスト形式で通信が行われます。リクエストやレスポンスの内容は文字として表現されており、Burp Suiteではその内容をそのまま確認することができます。

代表的なHTTPメソッドには次のものがあります。

 Burp Suiteでは、これらのHTTPメソッドやリクエスト内容を確認し、必要に応じて変更することができます。

1-5-2 HTTPSとは

 HTTPSは、HTTP通信を暗号化した通信です。HTTP通信では通信内容がそのままネットワークを流れますが、HTTPSでは通信内容が暗号化されるため、第三者が通信内容を読み取ることができません。

 HTTPSでは、TLS(Transport Layer Security)という暗号化技術を使用して通信を暗号化します。HTTPS通信では、ブラウザとサーバの間で暗号化のための鍵交換を行い、その後の通信を暗号化します。

 Burp SuiteでHTTPS通信を確認するためには、Burp Suiteの証明書をブラウザへインストールする必要があります。これは、Burp Suiteがブラウザとサーバの間に入り、暗号化通信を一度復号してから再度暗号化してサーバへ送信するためです。

HTTPS通信の流れは次のようになります。

  1. ブラウザ → Burp Suite(HTTPS)

  2. Burp Suite → サーバ(HTTPS)

  3. Burp Suiteが通信を復号して内容を表示

  4. 再度暗号化して通信を中継

この仕組みを理解すると、Burp SuiteがHTTPS通信を確認できる理由が分かります。

1-5-3 ヘッダ・ボディ・ステータスコード

HTTP通信は主に次の3つの要素で構成されています。

  • ヘッダ(Header)

  • ボディ(Body)

  • ステータスコード(Status Code)


ヘッダ

 ヘッダには、通信に関する情報が記載されています。例えば、次のような情報があります。

  • Host

  • User-Agent

  • Cookie

  • Content-Type

  • Authorization

  • Referer

ヘッダは通信の設定情報のようなものです。


ボディ

 ボディには、実際に送信するデータが入ります。例えば、ログインフォームのIDやパスワード、フォームの入力内容、JSONデータなどがボディに含まれます。

 GETリクエストではボディが存在しないこともありますが、POSTリクエストではボディにデータが入ります。


ステータスコード

ステータスコードは、サーバがリクエストを処理した結果を示す番号です。
代表的なステータスコードは次のとおりです。

Burp Suiteでは、RequestタブとResponseタブでこれらの情報を確認できます。

1-5-4 CookieとSession

 Webアプリケーションでは、ログイン状態などのユーザー情報を管理するためにCookieとSessionが使用されます。
 HTTPは基本的にステートレスな通信です。ステートレスとは、通信ごとに状態を保持しないという意味です。そのため、ログイン状態を維持するためには別の仕組みが必要になります。それがCookieとSessionです。


Cookie

 Cookieは、サーバからブラウザへ送られる小さなデータで、ブラウザに保存されます。その後の通信では、ブラウザはCookieをサーバへ送信します。
 Cookieには、セッションIDなど状態管理のための識別子や、設定情報などが保存されることがあります(保存内容はサイト設計に依存します)。

  • セッションID

  • ユーザーID

  • 設定情報

  • トークン


Session

 Sessionはサーバ側でユーザーの状態を管理する仕組みです。ブラウザは  Session IDをCookieとして保持し、そのSession IDを使ってサーバ側のSession情報を参照します。

通信の流れは次のようになります。

  1. ログインする

  2. サーバがSession IDを発行

  3. Session IDがCookieとしてブラウザに保存される

  4. 次のリクエストでCookieが送信される

  5. サーバがSession IDを確認

  6. ログイン状態を維持

 Burp Suiteでは、CookieヘッダやSet-Cookieヘッダを確認することで、Sessionの仕組みを確認できます。

1-5-5 MIME type

 MIME typeは、レスポンスのデータ形式を示す情報です。ブラウザはMIME typeを見て、HTMLとして表示するのか、画像として表示するのか、JSONとして処理するのかを判断します。

代表的なMIME typeは次のとおりです。

 Burp SuiteのHTTP historyでは、MIME typeの列が表示されます。これにより、その通信がHTMLなのか、画像なのか、APIのJSON通信なのかを判断できます。

MIME typeはレスポンスヘッダのContent-Typeに記載されています。

1-5-6 WebSocketの概要

 WebSocketは、ブラウザとサーバが双方向通信を行うための仕組みです。HTTPは基本的にリクエスト/レスポンスモデルの通信です(接続は複数のリクエストに再利用される場合があります)。一方、WebSocketは接続を維持して双方向にデータを送受信できます。

WebSocketは次のような場面で使用されます。

  • チャット

  • リアルタイム通知

  • オンラインゲーム

  • 株価表示

  • リアルタイム更新画面


 WebSocket通信は最初にHTTPリクエストで接続を確立し、その後WebSocket通信へ切り替わります。

 Burp Suiteでは、Proxy → WebSockets history からWebSocket通信を確認できます。


1-6 Burp利用時の注意点

 Burp SuiteはWebブラウザとWebサーバの間の通信を取得し、内容を確認したり変更したりできる強力なツールです。そのため、使い方を誤るとシステムへ影響を与えたり、情報漏えいの原因になったりする可能性があります。
 Burp Suiteを利用する際は、技術的な操作方法だけでなく、利用上の注意点についても理解しておく必要があります。この節では、Burp Suiteを使用する際に注意すべき点について説明します。

1-6-1 許可された対象のみに使用する

 Burp Suiteは通信内容を変更したり、通常とは異なるリクエストを送信したりすることができるため、対象システムへ負荷をかけたり、想定外の動作を引き起こす可能性があります。そのため、Burp Suiteは必ず許可された対象に対してのみ使用する必要があります。

 自分が管理しているシステムや、検証用環境、学習用サイトなど、利用が許可されている環境でのみBurp Suiteを使用してください。許可されていないWebサイトやサービスに対して、リクエスト改ざんや大量のリクエスト送信を行うことは、利用規約違反や法令違反となる可能性があります。

 特にIntruderなどを使用して大量のリクエストを送信すると、対象サーバへ大きな負荷がかかる場合があります。これは意図しないサービス妨害とみなされる可能性もあります。

 Burp Suiteは便利なツールですが、使い方によっては対象システムへ大きな影響を与える可能性があるため、必ず利用許可のある対象に対してのみ使用することを徹底してください。

1-6-2 本番環境での影響に注意する

 Burp Suiteを使用してリクエストを書き換えたり、大量のリクエストを送信したりすると、本番環境のデータが変更されたり、ログが大量に出力されたり、サーバへ負荷がかかったりする可能性があります。

例えば、次のような操作は本番環境では特に注意が必要です。

  • Intruderによる大量リクエスト送信

  • Repeaterでの連続送信

  • ファイルアップロードの繰り返し

  • データ更新系APIへのリクエスト送信

  • DELETEリクエストの送信

  • セッションIDの変更

  • 管理画面へのアクセス試行

 これらの操作は、データの更新や削除、ログの肥大化、システム負荷の増加などの影響を与える可能性があります。本番環境でBurp Suiteを使用する場合は、対象システムの管理者や関係者と事前に作業内容を共有し、影響範囲を確認してから実施することが重要です。

 また、本番環境では作業時間帯にも注意が必要です。利用者が多い時間帯に大量のリクエストを送信すると、サービスの応答速度が低下する可能性があります。検証作業はできるだけ利用者の少ない時間帯に行うようにします。

 Burp Suiteは通信を自由に操作できるツールであるため、本番環境では操作がそのまま本番データやサービスに影響することを常に意識する必要があります。


1-6-3 ログや機微情報の取り扱い

 Burp Suiteでは、HTTP historyやRepeater、Loggerなどに通信内容が保存されます。通信内容には次のような機微情報が含まれる場合があります。

  • ID

  • パスワード

  • セッションID

  • Cookie

  • APIトークン

  • 個人情報

  • メールアドレス

  • 住所

  • 電話番号

  • クレジットカード情報

  • アップロードファイル

 これらの情報がBurp Suiteのプロジェクトファイルやログに保存される可能性があります。

1-6-4 誤操作で通信を止めないために

 Burp Suiteを使用していると、Interceptがオンの状態のまま通信を止めてしまい、ブラウザの画面が表示されなくなることがあります。これはBurp Suiteを使い始めたときによく起こるトラブルの一つです。

 Interceptがオンになっている場合、ブラウザから送信されたリクエストはBurp Suiteで一時停止します。その状態でForwardを押さないとリクエストがサーバへ送信されないため、ブラウザ側では画面の読み込みが止まったままになります。

このような状態になった場合は、次の点を確認してください。

  • Proxy → Intercept が ON になっていないか

  • 停止しているリクエストが残っていないか

  • Forward ボタンを押しているか

  • Intercept off にしているか

 また、Interceptは必要なときだけオンにし、通常はオフにしてHTTP historyで通信を確認する方が作業しやすい場合が多いです。
 Burp Suiteを使用する際は、Interceptが通信を止める機能であることを理解し、通信が止まった場合はまずInterceptの状態を確認するようにしてください。

まとめ
Burp Suite利用時の注意点
・必ず許可された対象のみで使用する
・本番環境では影響範囲を確認する
・ログやプロジェクトファイルには機微情報が含まれる可能性がある
・Interceptをオンにすると通信が停止する



いいなと思ったら応援しよう!