Burp Intruderの使い方|Sniper・Battering ram・Pitchfork・Cluster bombの選び分け
Burp Intruderは、1本のリクエストの一部分を差し替えながら自動で撃ち続けるツールです。つまずくのは操作ではなく、4つある攻撃タイプのどれを選ぶかと、その結果として何リクエスト飛ぶのかの見積もりです。ここでは公式ドキュメントの定義に沿って攻撃タイプの違いとリクエスト数の計算、ペイロード位置の指定、結果の読み方を整理します。Burp Suite全体の構成やProxyの設定、脆弱性診断ツールとしての位置づけはBurp Suiteとは何か?Webアプリの脆弱性診断に欠かせないプロキシツールの概要を徹底解説にまとめてあります。
まとめ|Intruderの攻撃タイプ選択で押さえる要点
- 1箇所ずつ順に試すならSniper、全位置に同じ値を入れるならBattering ramです。どちらもペイロードセットは1つです。
- ユーザー名とIDのように対応関係のある組を同時に入れるならPitchfork、総当たりの組み合わせを試すならCluster bombです。
- Cluster bombのリクエスト数はセットの積です。100語×100語で1万リクエストになり、対象を落としかねません。
- Community EditionのIntruderはデモ版です。実務で本数を撃つならProfessionalが前提になります。
- Intruderは他人のサイトへ撃った時点で攻撃と区別がつきません。書面の許諾がない対象には実行しないでください。
Burp Intruderの位置づけ|RepeaterとScannerの中間
Burp Suiteの手動ツールは役割で分かれています。Repeaterは1本のリクエストを編集して繰り返し送るツール、Scannerは自動で脆弱性を探すツール(Professional以上)。Intruderはその中間で、人が決めた1箇所を、人が用意した値のリストで機械的に置き換えるところを担当します。
典型的な用途は、パラメータのファジング、権限のないIDへのアクセス可否の総当たり確認、レスポンス差分による列挙の検出です。逆に「どこに何があるか分からない」段階ではScannerかCrawlerの仕事で、Intruderの出番ではありません。
エディションによる差も先に押さえておきます。公式のエディション比較では、Community Editionに含まれるのは「Burp Intruder(demo)」で、Professionalが「full version」と明記されています。学習用途では十分ですが、数千リクエストの検証をCommunityで回す前提の手順書は現実的ではありません。最新版は2026年7月30日リリースの2026.7.2で、7月16日の2026.7ではProfessional向けにエージェント型AIのBurp ATが追加されています。
4つの攻撃タイプとリクエスト数の計算
攻撃タイプはメッセージエディタ上部のドロップダウンで選びます。判断軸は「ペイロードセットが1つか複数か」と「位置に同時に入れるか順番に入れるか」の2つだけです。
| 攻撃タイプ | ペイロードセット | 投入のしかた | リクエスト総数 | 向いている場面 |
|---|---|---|---|---|
| Sniper | 1つ | 各位置へ順番に | 位置数 × ペイロード数 | パラメータを1つずつファジング |
| Battering ram | 1つ | 全位置へ同時に同じ値 | ペイロード数 | Cookieと本文へ同じ値を入れる |
| Pitchfork | 位置ごとに別 | 各セットを同時進行 | 最小セットのペイロード数 | ユーザー名と対応IDの組 |
| Cluster bomb | 位置ごとに別 | 全組み合わせ | 各セットの積 | ユーザー名とパスワードの総当たり |
単一セットのSniperとBattering ram
Sniperは、位置が3つでペイロードが100語なら300リクエストです。1回のリクエストで置き換わるのは1箇所だけで、他の位置は元の値のまま残ります。どのパラメータが反応したかを切り分けたいときはこれを選びます。
Battering ramは同じ値を全位置に同時に入れます。セッションIDのように、ヘッダと本文の両方に同じ値が要求される場面で使います。リクエスト数はペイロード数と同じです。
複数セットのPitchforkとCluster bomb
Pitchforkは各位置に別のセットを割り当て、1番目同士・2番目同士と同時に進みます。総数は最も小さいセットの要素数で止まります。「このユーザー名にはこのID」という既知の対応関係を検証する用途です。
Cluster bombは全組み合わせを試します。ペイロードセットは最大20まで指定できますが、実際に使えるのはせいぜい2〜3セットです。 ユーザー名50件×パスワード1,000件で5万リクエストになり、対象のアプリケーションが先に倒れます。総当たりを回す前に、必ず掛け算をして所要リクエスト数を出してください。
ペイロード位置の指定と実行前の見積もり
Proxyの履歴で対象のリクエストを右クリックしてIntruderへ送ると、Burpが自動でパラメータへ位置マーカー(§)を付けます。この自動選択は余計な箇所まで含むことが多いため、Clear all で一度すべて消し、狙う箇所だけをAdd §で囲み直すのが定石です。
位置を確定したらPayloadsタブでリストを設定します。ここで表示されるリクエスト数の見積もりが、そのまま対象へ飛ぶ本数です。数字が想定の桁を超えていたら、攻撃タイプかセットを見直します。Resource poolで同時接続数と遅延を設定できるので、本番同等の環境では並列数を絞り、リクエスト間隔を空けます。
結果の読み方|StatusとLengthの差分
結果テーブルで最初に見るのはStatusとLengthの2列です。認証まわりの検証では、成功と失敗でレスポンス長が数バイト違うだけ、という差分がよく出ます。Lengthでソートして外れ値を探すのが最短です。
レスポンス本文の文言で判定したい場合は、Grep – Match に「Invalid password」などの文字列を登録すると、その有無が列として追加されます。逆に、Statusが揃っていてLengthも同じなのに挙動が違う場合は、応答時間(Response received列)を見ます。時間差はブラインドSQLインジェクションの判定にも使う指標です。
Intruderを使うべきでない場面
許諾のない対象へは実行しません。 Intruderが送るのは正規のHTTPリクエストですが、認証の総当たりや大量のパラメータ改変は、受け手のログでは攻撃そのものです。日本国内では不正アクセス禁止法に触れる可能性があり、対象が自社サービスであっても、共用ホスティングやSaaS上に載っているなら事業者の規約確認が要ります。診断業務では、対象URL・実施時間帯・想定リクエスト数を書面で合意してから着手するのが原則です。
技術的にも向かない場面があります。ログイン試行の連打はアカウントロックを引き起こし、以降の検証を自分で塞ぎます。WAFの前段で遮断されればレスポンスは全て同じになり、差分観測そのものが成立しません。既知の脆弱性パターンを網羅的に探す作業はScannerの守備範囲で、Intruderで代替すると時間だけかかります。CI/CDに組み込んで継続的に回す用途なら、IntruderではなくDASTとは?SASTとの違い・ZAPでのCI/CD組み込みと導入判断を実装視点で解説で扱っているスキャナ側の設計が適します。
よくある質問
Burp Suite Intruderの攻撃タイプはどれを選べばよいですか?
差し替える箇所が1つなら、どのタイプでも結果は同じです。複数ある場合は、1箇所ずつ切り分けたいならSniper、対応関係のある組を同時に入れるならPitchfork、総当たりならCluster bombを選びます。全位置に同一の値を入れるのがBattering ramです。
Community EditionでIntruderは使えますか?
使えますが、公式のエディション比較で「demo」と明記されているデモ版です。学習や動作確認には足りますが、実務の本数を撃つ用途はProfessional(full version)が前提です。プロジェクトファイルの保存やScannerもProfessional以上の機能です。
リクエスト数が想定より多くなるのはなぜですか?
Cluster bombを選んでいるためです。総数は各ペイロードセットの積になるので、100語と100語で1万リクエストになります。積ではなく最小セット数で止めたい場合はPitchforkへ切り替えます。
Intruderの結果から当たりを見つけるコツはありますか?
Lengthでソートして外れ値を探すのが基本です。判定文言が分かっているならGrep – Match に登録して列で見ます。StatusもLengthも同じなら、応答時間の差を見ます。
自分のサイト以外にIntruderを実行してもよいですか?
いけません。書面の許諾がない対象への実行は不正アクセス禁止法に触れる可能性があります。練習にはPortSwiggerが提供する学習環境や、自分で構築した検証用アプリケーションを使ってください。