1. サポートセンター
  2. ドキュメント
  3. デスクトップ版
  4. ツール
  5. Intruder
  6. ペイロード
  7. 種類

ペイロードタイプ

Burp Intruderには次のペイロードタイプがあります:

単純リスト

これは最も単純なペイロードタイプで、ペイロードとして使用される文字列の単純なリストを設定できます。

テキストボックスと"追加"ボタンを使用してリストに追加するか、クリップボードからリストを貼り付けるか、ファイルから読み込みができます。

定義済みペイロードリスト

アイテムリスト型の様々なペイロードタイプで"リストから追加"ドロップダウンメニューが使用でき、一般的なユーザ名やパスワード、ファジング文字列など便利な定義済みリストを追加できます。Intruderメニューの"定義済みペイロードリストを編集"を使って、定義済みペイロードリストをカスタマイズできます。ペイロードファイルを含んだ独自のディレクトリが選択でき、カスタムディレクトリにBurpの組み込みペイロードリストをコピーして、編集もしくは独自のペイロードリストを使うこともできます。

実行時ファイル

実行時にペイロード文字列を読み込むファイルを設定できます。とても大きなペイロードリストが必要で、リストをメモリに保持させたくない場合に便利です。ファイルの各行を1つのペイロードとして読み込むので、ペイロードには改行文字を含められません。

カスタムイテレータ

複数のアイテムリストを設定し、リスト内のアイテム全てを組み合わせてペイロードを生成できます。指定されたテンプレートに従って、文字やその他のアイテムを組み合わせて、カスタマイズした文字列を生成できる強力な方法です。例えば、給与アプリケーションで AB/12 という形式の個人番号で個々を識別してる場合、全員の詳細情報を取得するために、可能性のある全ての個人番号を列挙する必要があるとします。

カスタムイテレーターは、組み合わせの生成で使う最大8つの異なる"ポジション"を定義できます。各ポジションの定義はアイテムのリストで定、追加で"区切り"文字列が設定でき、ポジションとその次の間に挿入されます。前述の例では、ポジション1と2のアイテムは A - Z、ポジション3と4のアイテムは 0 - 9、そしてポジション2の区切り文字に / 文字を設定します。攻撃を実行すると、各ポジションで各アイテムを反復処理し、全ての可能性のある組み合わせを網羅します。したがってこの例では、ペイロードの総数は 26 * 26 * 10 * 10 になります。

リストアイテムはシンプルリストペイロードタイプと同じ方法で編集できます。"すべてクリア"ボタンは、カスタムイテレーターの全てのポジションから全ての設定を削除します。

"定義済み形式を選択"ドロップダウンメニューは、 あらかじめ設定されたカスタムイテレーターを選択できます。これらは様々な標準的な攻撃に使え、またはカスタマイズされた攻撃用に編集できます。使用可能なスキームは、URLの生成に使える"ディレクトリ/ファイル.拡張子"、パスワード推測攻撃で拡張単語リストの生成に使える"パスワード+数値"です。

文字置換

文字列のリストと、各アイテムに適用する様々な文字置換が設定できます。パスワード推測攻撃で、辞書単語の一般的なバリエーションを生成するために便利な場合があります。

置換する文字を、UIで設定できます。攻撃を実行すると、設定されたアイテムそれぞれを順序通り処理していきます。各アイテムごとに、定義した文字置換の全組み合わせで置換した、大量のペイロードが生成されます。例えば、デフォルトの置換ルール( e > 3 と t > 7 が含まれています)で、"peter"は次のペイロードを生成します:

peter
p3ter
pe7er
p37er
pet3r
p3t3r
pe73r
p373r

リストアイテムはシンプルリストペイロードタイプと同じ方法で編集できます。

大文字小文字変換

文字列のリストと、各アイテムに適用する大文字小文字の変更方法を設定できます。パスワード推測攻撃で、辞書単語の大文字小文字違いのバリエーションを生成するために便利な場合があります。

次の大文字小文字変更規則を選択できます:

設定されたアイテムそれぞれを順序通り処理し、各アイテムの大文字小文字を調整します。重複するペイロードは破棄されます。例えば、全ての変更オプションが選択されている場合、"Peter Wiener"は次のペイロードを生成します:

Peter Wiener
peter wiener
PETER WIENER
Peter wiener

リストアイテムはシンプルリストペイロードタイプと同じ方法で編集できます。

再帰検索

このペイロードタイプは、前の攻撃リクエストのレスポンスからペイロードを抽出します。有用なデータの抽出やエクスプロイトの引き渡しを再帰的に行う必要があるような状況で便利です。

このペイロードタイプは抽出grep機能と共に動作し、レスポンスから気になる情報を含む部分を抽出します。前の攻撃レスポンスから抽出したテキストが、次のペイロードとして使われます。

これは、様々なタスクに使用できます。例えば、フォームのクエリーで再帰的にSQLインジェクションを行い、データベースからの情報抽出が可能になりま

union select name from sysobjects where name > 'a'

サーバのエラーメッセージから、最初のデータベースオブジェクトの名前が漏洩しています:

Syntax error converting the varchar value 'accounts' to a column of data type int.

このクエリーに次は'accounts'を使い、次のオブジェクトを特定します。再帰的にペイロードをgrepしてデータベースの全オブジェクトを一覧化する作業を、簡単に自動化できます。

次のオプションを選択する必要があります:

このペイロードの性質上、この攻撃は単一のリクエストスレッドを採用しなければならないことに注意してください。

不正なUnicode

不正なUnicode表記の文字列を生成します。例えばファイルパストラバーサル攻撃の防御で ../ と ..\ へのマッチを想定している場合など、特定の文字をブロックするよう設計されているフィルターの回避に効果がある場合があります。

ペイロードタイプはアイテムのリストとして動作し、各アイテムの指定した文字を、不正なUnicodeエンコーディングの別の文字に置き換えることで、大量のペイロードを生成します。使用可能なオプションは次の通りです。

冗長なUTF-8エンコード

Unicodeエンコーディング方式では、1つの文字を表すために最大6バイト使えます。基本的なASCII文字(0x00 - 0x7F)はそのまま1バイトで表されます。ただし、Unicodeではそれらを複数バイト("冗長な"エンコード)でも表現できます。このオプションでは、冗長なエンコーディングを使用するかどうか、また使用する場合はその最大サイズを設定します。

不正なUTF-8継続バイト

冗長なUTF-8長で、2バイト以上を選択している場合に有効になります:

不正な16進数文字

生成されたバイトシーケンスを16進数表記で表現する方法を制御します:

16進数フォーマット

16進数でエンコードされたペイロードの見た目を制御します:

総エンコード数

設定値に基づいたエンコードの推定数を表示し、また生成される不正なエンコーディング数の上限も指定できます。大量の冗長エンコーディングや組み合わせの最大化が選択された場合、これらのオプションは膨大な数の不正なエンコーディングを生成する可能性があります。

リストアイテムの検索と置換

リストアイテムの文字置換を制御します:

リストアイテムはシンプルリストペイロードタイプと同じ方法で編集できます。

文字ブロック

指定された文字や文字列のブロックに基づいたペイロードを生成します。ネイティブ(アンマネージド)コンテキストで実行されるソフトウェアの、バッファオーバフローや境界条件の脆弱性を検知する場合に便利です。特定の長さの入力が入力フィルターをバイパスしたり、予期せぬコードパスのきっかけになるなど、ロジックフローの攻撃にも使えます。

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

数値

与えられた範囲内で、指定した形式の数値ペイロードを生成します。次のオプションが使用できます。

数値範囲

次のオプションを設定できます:

注: Burpは、数値範囲の設定とペイロードジェネレータ実行時の内部状態に倍精度浮動小数点を使用します。非常に大きな数値、または非常に小さな数値を扱う場合、精度が失われる可能性があります。合計桁数が大きい数値(約12桁以上)で回す場合、攻撃テンプレート内の大きな数値を複数のペイロードポジションマーカに分割して指定し、そこに対してより小さな桁数の数値ペイロードを生成したほうが信頼性が上がります。

数値フォーマット

次のオプションを設定できます:

各桁オプションが空白のままの場合、最小または最大桁数は適用されません。現在の数値フォーマット設定で生成される数値の例も表示されます。

日付

与えられた範囲内で、指定した形式の日付ペイロードを生成します。データマイニング(例えば日ごとに格納された注文を漁る場合)や、またはブルートフォース(例えばユーザの機微情報である誕生日を推測する場合)に便利です。

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

E Sat
EEEE Saturday
d 7
dd 07
M 6
MM 06
MMM Jun
MMMM 6月
yy 03
yyyy 2003
/ . : 等 / . :

ブルートフォース

指定した長さ・文字セットから、すべての組み合わせのペイロードを生成します。

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

ペイロードなし

ペイロード値が空の文字列を生成します。

同じリクエストに対して、元のベーステンプレートに変更を加えることなく、繰り返し攻撃が必要な場合に便利です。これは様々な攻撃に使え、例えばシーケンス解析のためのcookie収集、サーバ上で高負荷なタスクを繰り返しリクエストするアプリケーション層へのサービス拒否攻撃、他の断続的なテストで使用されているセッショントークンを維持する、などです。

このペイロードタイプでは、リクエストテンプレートでペイロードポジションマーカを使う必要はありません。

ペイロードを生成する数を指定するか、無限に継続するか設定できます。

文字フロバー

このペイロードタイプは入力文字列に対して、各位置の文字を順番に変更していきます。これはペイロードポジションで指定された既存の文字列をベースにもできますし、指定した文字列でも可能です。1回あたり、ベース文字列中の1文字についてASCIIコードを1つ増やした文字に変える操作を、文字数分行います。

このペイロードタイプは、どのパラメータ値、また値のどの部分が、アプリケーションの応答に影響があるのかをテストする場合に有効です。特に、複雑なセッショントークンのどの部分が、実際にセッション状態を追跡するために使われているかテストする場合に便利です。もしセッショントークン内の一部の文字を変更してもまだセッションが維持されているようであれば、その文字はセッションで使用されていない可能性があります。

ビットフリッパー

このペイロードタイプは入力値に対して、各ビット位置の値を順番に変更していきます。これはペイロードポジションで指定された既存の文字列をベースにもできますし、指定した文字列でも可能です。1回あたり、ベース文字列の1文字を対象として、各(指定された)ビットを順番に反転します。

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

元の値をリテラル値として扱うか、ASCII16進数として扱うか設定できます。例えば、元の値が"ab"の場合、リテラル文字列として動作してすべてのビットを反転すると次のペイロードになります:

`b
cb
eb
ib
qb
Ab
!b
áb
ac
a`
af
aj
ar
aB
a"

一方、ASCII16進数文字列として"ab"を扱い、すべてのビットを反転すると次のペイロードになります:

aa
a9
af
a3
bb
8b
eb
2b

このペイロードタイプは、文字フロバーをさらにきめ細かく制御する必要がある状況で役立ちます。例えば、CBCモードのブロック暗号で意味にあるデータが暗号化されてセッショントークンや他のパラメータ値に含まれる場合、暗号ブロック内の直前のビットを変更すると、復元されるデータの一部を体系的に変更できる可能性があります。このような状況で、ビットフリッパーのペイロードタイプを使用すると、暗号化されたデータ内の個々のビットの変更による効果を判断し、アプリケーションが脆弱かどうか理解できます。

ユーザ名ジェネレータ

名前や電子メールアドレスの一覧を設定し、そこから一般的な生成規則を使用して様々な潜在的なユーザ名を生成します。

例えば、"peter weiner"という名前を指定すると、次のような115通り以上の結果になります:

peterweiner
peter.weiner
weinerpeter
weiner.peter
peter
weiner
peterw
peter.w
wpeter
w.peter
pweiner
p.weiner
weinerp
weiner.p
など...

特定の個人ユーザを狙っていて、しかしアプリケーション内で使用されているユーザ名やメールアドレスの生成規則がわからない場合には、このペイロードタイプが便利です。

リストアイテムはシンプルリストペイロードタイプと同じ方法で編集できます。リストの1アイテムごとに生成するペイロードの最大数も設定できます。

ECBブロックシャッフル

ECBで暗号化されたデータの暗号文ブロックを並び替えると、復号した際に意味のある平文になり、アプリケーションロジックが不安定になる可能性があります。

ECB暗号は、他のブロックとは関係なく平文のブロックを暗号化するため、(同じ鍵を使っていれば)同じ平文が暗号化されると同じ暗号文になり、またその逆も起こります。したがって、暗号文の大部分のブロックを並べ替えると、復号された平文のブロックも並び替えられる可能性があります。一部のデータ(ユーザ名、ユーザID、ロール、タイムスタンプのフィールドを持つ構造化されたセッショントークンなど)では、解読された際に意味のあるデータ内容になるよう変更し、アプリケーション処理を不安定にしたり、許可されていない処理を実行できる可能性があります。

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

拡張による生成

ペイロードを生成するBurp拡張を呼び出します。Intruderのペイロードジェネレータとして、その拡張が登録されている必要があります。現在読み込まれている拡張によって登録されている、使用可能なジェネレータの一覧から、必要なジェネレータを選択できます。

他ペイロードコピー

このペイロードタイプは、別ペイロードの値を、現在のペイロード値にコピーします。複数のペイロードセットを持つ攻撃タイプ(クラスタボムとバタリングラム)で使用できます。ペイロード処理ルールも定義できるので、別のペイロードポジションのリテラル値をコピーするだけではなく、その値から現在のペイロードを体系的に派生できます。

このペイロード タイプは、様々な状況で便利です、例: