1. サポートセンター
  2. ドキュメント
  3. デスクトップ版
  4. ツール
  5. Proxy
  6. オプション

Burp Proxyオプション

このタブには、Burp Proxy設定の、ProxyリスナーHTTPリクエストとレスポンスのインターセプトWebSocketsメッセージのインターセプトレスポンス変更検索と置換SSLパススルーその他のオプションがあります。

Proxyリスナー

Proxyリスナーは、ブラウザからの接続を待ち受けるローカルHTTPプロキシサーバです。全てのリクエストとレスポンスの表示及びインターセプトができ、Burpのユーザ主導ワークフローの中心部分に位置します。デフォルトで、Burpはループバックインタフェースのポート8080でリスナーを1つだけ作成します。このリスナーを使うには、127.0.0.1:8080をプロキシサーバとして使うようブラウザを設定する必要があります。ほぼ全てのブラウザベースのWebアプリケーションは、このデフォルトリスナーのみでテストできます。

複数のProxyリスナーを作成でき、それらの挙動を制御する豊富な設定オプションがあります。特殊なアプリケーションのテストや、ブラウザベースではないHTTPクライアントを使ったテストをする際、これらのオプションを使う必要があります。

バインド

Proxyリスナーをローカルネットワークインタフェースにどのようにバインドするか制御します:

リクエストハンドリング

このリスナーが受信したリクエストをリダイレクトするかどうか制御するオプションがあります。

リダイレクトオプションは、それぞれ独立して使用できる点に留意してください。つまり例えば、それぞれの元リクエストのポートとプロトコルは維持しつつ、特定のホストにすべてのリクエストをリダイレクトできます。

Burpの透過プロキシサポートにより、プロキシ非対応クライアントが直接リスナーに接続できます。詳細については、透過プロキシのヘルプを参照してください。

証明書

SSLクライアントに提示されるSSLサーバ証明書を制御します。これらのオプションを使用すると、プロキシでインターセプトする際に発生する一部のSSLに関する問題を解決できます:

次のオプションがあります:

CA証明書のエクスポート及びインポート

他のツールやBurpの他のインスタンスで使用するようインストール固有のCA証明書をエクスポートする、または現在のBurpインスタンスで使用するよう証明書のインポートができます。これを行うには、"CA証明書のインポート/エクスポート"ボタンをクリックしてください。

証明書のみエクスポートする(ブラウザやその他のデバイスのトラストストアにインストールする場合)か、証明書と秘密鍵の両方をエクスポートできます。

注: 信頼できない第三者に証明書の秘密鍵を渡さないでください。証明書と鍵を所有する悪意の攻撃者は、あなたがBurpを使っていないときでもブラウザのHTTPS通信を盗聴できてしまいます。

ブラウザから http://burp/cert にアクセスして、証明書だけをエクスポートできます。これは、HTTPSリクエストでブラウザに提示する場合と同じ証明書ですが、モバイルデバイスにインストールする場合はURL経由でダウンロードできる機能が便利です。

新しいCA証明書を生成したい場合は、"CA証明書再生成"ボタンをクリックしてください。変更を有効化するにはBurpを再起動し、新しい証明書をブラウザにインストールする必要があります。

カスタムCA証明書の作成

次のOpenSSLコマンドで、CA名など独自の詳細情報を設定したカスタムCA証明書が作成できます:

openssl req -x509 -days 730 -nodes -newkey rsa:2048 -outform der -keyout server.key -out ca.der

[OpenSSL は、証明書の様々な詳細情報を入力するように要求します。全ての要求されたアイテムに適切な値を入力してください。]

openssl rsa -in server.key -inform pem -out server.key.der -outform der

openssl pkcs8 -topk8 -in server.key.der -inform der -out server.key.pkcs8.der -outform der -nocrypt

Burpで"CA証明書のインポート/エクスポート"ボタンをクリックし、"DER形式の証明書と秘密鍵"を選択してください。ca.derを証明書ファイルとして、server.key.pkcs8.derを鍵ファイルとして選択します。BurpはカスタムCA証明書を読み込み、ホストごとの証明書生成に使用します。

HTTPリクエストとレスポンスのインターセプト

Interceptタブでどのリクエストとレスポンスを止めて表示や編集をするか制御します。リクエストとレスポンスには別々の設定が適用されます。

"Intercept"チェックボックスは、任意のメッセージをインターセプトするかどうかを決定します。チェックされている場合、設定されたルールを適用して、各メッセージをインターセプトするべきかどうか判断します。

各ルールの左側のチェックボックスで、個々のルールを有効または無効にできます。ボタンを使用して、ルールの追加・編集・削除・順序の変更ができます。

ルールはメッセージのほぼ全ての属性で設定でき、ドメイン名・IPアドレス・プロトコル・HTTPメソッド・URL・ファイル拡張子・パラメータ・cookie・ヘッダ/ボディの内容・ステータスコード・MIMEタイプ・HTMLページのタイトル・プロキシリスナーのポートなどが利用できます。ターゲットスコープ内にあるURLのみインターセプトするルールを設定できます。正規表現を使用して、属性ごとに複雑な条件を定義できます。

ルールは順番に処理され、ブール型のANDやOR演算子を使用して結合されます。各演算子のスコープは次のように単純な「左から右」ロジックで処理されます:

(以前のルールの累積的な結果) AND/OR (現在のルールの結果)

各メッセージで全ての有効なルールが処理され、最後の有効なルールが適用された結果で、メッセージをインターセプトするか、またはバックグラウンドに転送されるか決定します。

"Content-Lengthヘッダを自動的に更新する"チェックボックスは、ユーザがメッセージを変更した場合にBurpが自動的にContent-Lengthヘッダを更新するかどうか制御します。このオプションは通常、HTTPボディが変更されたとき不可欠です。

リクエストに対して、リクエスト最後の空行の過不足を自動的に修正するオプションがあります。リクエストの編集時にヘッダの後に空行がない場合、Burpが追加します。編集されたリクエストで、URLエンコードされたパラメータのボディの末尾に空行があった場合、Burpはこれらを削除します。インターセプトビューで手動で編集したリクエストの間違いを修正するのに便利で、無効なリクエストがサーバに発行されないようにできます。

WebSocketメッセージのインターセプト

どのWebSocketメッセージを、インターセプトタブで止めて表示や編集するか制御します。

送信(クライアントからサーバ)メッセージと受信(サーバからクライアント)をインターセプトするか、それぞれ個別に設定できます。

レスポンス操作

レスポンスの自動変更を設定します。アプリケーションレスポンスのHTMLを自動的に書き換えると様々なタスクを達成できます。

次のオプションは、データ上のクライアント側コントロールを除去するのに便利かもしれません:

次のオプションは、クライアント側のテスト用ロジックを無効化するのに便利かもしれません(これらの機能はNoScriptのようなセキュリティ保護のために設計されているわけではないことに注意してください):

次のオプションは、トラフィックが無意識のうちにBurpにプロキシされてしまっている被害者ユーザに対して、SSLstrip攻撃をするために使えます。発信方向のリクエストでSSLを強制するリスナーオプションと組み合わせて使用すると、ユーザの接続からSSLを効果的に削除できます:

検索と置換

Proxyを通過するリクエストやレスポンスの一部を自動的に置換する設定です。HTTPメッセージごとに、有効な検索と置換ルールが順番に実行され、該当する置換が行われます。

ルールはリクエストとレスポンス、メッセージヘッダとボディ、そしてリクエスト最初の特別な行について、別々に定義できます。各ルールでは、リテラル文字列または正規表現パターンに一致するか指定でき、置換する文字列も指定できます。

メッセージヘッダの場合、ヘッダ行全体に一致する条件が指定されていて、置換文字列が空白の場合、そのヘッダは削除されます。空の文字列が検索文字列に指定されている場合、置換文字列が新たなヘッダとして追加されます。

一般的なタスクを支援するために利用可能な様々なデフォルトルールがあります - これらはデフォルトで無効です。

複数行範囲への一致

メッセージボディの複数行部分にマッチする標準的な正規表現構文を使用できます。例えば、レスポンスボディが次のみの場合:

Now is the time for all good men
to come to the aid of the party

次の正規表現を使用すると:

Now.*the

次にマッチします:

Now is the time for all good men
to come to the aid of the

もし行内のみにマッチさせたい場合、正規表現を次の通り修正すると:

Now[^\n]*the

次にマッチします:

Now is the

前方参照と置換文字列で正規表現グループを使用する

検索文字列の中で括弧を使用してグループを定義ができ、左から右に順番に1 から始まるインデックス番号が割り当てられています(0は一致したグループ全体を表します)。

グループはバックスラッシュとグループインデックスを使って、同じ一致文字列の前方参照ができます。例えば、間に他のタグを挟まない、開始と終了タグのペアにマッチするには、次の正規表現を使用します:

<([^/]\w*)[^>]*>[^>]*?</\1[^>]*>

置換文字列で、$とグループインデックスを使って、グループを参照できます。次の置換文字列には、上記の正規表現に一致したタグの名前が含まれます:

Replaced: $1

SSLパススルー

SL接続を直接通過させる宛先のWebサーバを設定できます。これらの接続によるリクエストやレスポンスは、Proxyのインターセプトビュー履歴で詳細が利用できません。

SSL接続のパススルーは、クライアントでのSSLエラーの除去が簡単ではない場合 - 例えば、SSL証明書のピニングをしているモバイルアプリケーションなどに便利です。アプリケーションが複数のドメインにアクセスする、またはHTTPとHTTPSが混在している場合、問題のあるホストへのSSL接続をパススルーに指定すると、他のトラフィックはBurpを使った通常の方法で作業できるようになります。

SSLネゴシエーションが失敗したエントリを自動的に追加オプションが有効な場合、クライアントのSSLネゴシエーション失敗(例えば、BurpのCA証明書を認識していないため)をBurpが検知し、自動的にSSLパススルーリストにそのサーバを追加します。

その他

Burp Proxyの詳細な動作を制御する設定です。次のオプションがあります: