mcpField
B
Burp Suite Web Application Testing

Burp Suite Web Application Testing

github.com/davila7セキュリティ33.0k242 回インストール1 日前に更新
リポジトリ

Burp Suite Web Application Testing について

Burp Suite を使った Web アプリケーションのセキュリティテストを支援するスキルです。HTTP の傍受やリクエスト分析から手動テスト、スキャン結果の確認まで扱い、許可されたテストを前提に Community と Professional の機能差も示します。

主な機能

  1. 01HTTP トラフィックの傍受と変更
  2. 02履歴の確認と対象範囲の設定
  3. 03リクエストの再送とレスポンス分析
  4. 04Professional 版での脆弱性スキャン
  5. 05Intruder のペイロード攻撃設定

活用シーン

  1. 01許可されたアプリテストでリクエストを確認
  2. 02パラメーター処理とビジネスロジックをテスト
  3. 03レスポンスから脆弱性の兆候を調査
  4. 04対象範囲内をスキャンして発見事項を記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davila7/claude-code-templates --skill burp-suite-web-application-testing

インストール後、Claude Code で/burp-suite-web-application-testingを入力して読み込まれたか確認します。

詳細

Burp Suite によるWebアプリケーションテスト

目的

Burp Suite の統合ツールセットを使用して、包括的なWebアプリケーションのセキュリティテストを実行します。HTTPトラフィックの傍受と改変、リクエストの分析とリプレイ、自動脆弱性スキャン、手動テストのワークフローを含みます。このスキルにより、プロキシベースのテスト手法を通じて、Webアプリケーションの脆弱性を体系的に発見・悪用できます。

入力 / 前提条件

必要なツール
  • Burp Suite Community または Professional Edition のインストール
  • Burp の組み込みブラウザ、または設定済みの外部ブラウザ
  • 対象Webアプリケーションの URL
  • 認証が必要なテストの場合は有効な認証情報(該当する場合)
環境設定
  • 一時プロジェクトまたは名前付きプロジェクトで Burp Suite を起動
  • プロキシリスナーを 127.0.0.1:8080(デフォルト)で有効化
  • ブラウザを Burp プロキシを使用するように設定(または Burp のブラウザを使用)
  • HTTPS 傍受のために CA 証明書をインストール
エディションの比較
機能CommunityProfessional
Proxy✓✓
Repeater✓✓
Intruder制限付きフル
Scanner✗✓
Extensions✓✓

出力 / 成果物

主な出力
  • 傍受・改変された HTTP リクエスト/レスポンス
  • 修正アドバイスを含む脆弱性スキャンレポート
  • HTTP 履歴とサイトマップのドキュメント
  • 特定された脆弱性に対する概念実証(PoC)のエクスプロイト

core ワークフロー

フェーズ 1: HTTP トラフィックの傍受
Burp のブラウザを起動する

プロキシ連携をシームレスに行うため、統合ブラウザを開きます。

  1. Burp Suite を開き、プロジェクトを作成または開きます
  2. Proxy > Intercept タブに移動します
  3. Open Browser をクリックして、事前設定済みのブラウザを起動します
  4. Burp とブラウザの両方を同時に表示できるようにウィンドウを配置します
傍受の設定

キャプチャするリクエストを制御します。

Proxy > Intercept > Intercept is on/off toggle

When ON: Requests pause for review/modification
When OFF: Requests pass through, logged to history
リクエストの傍受と転送

傍受したトラフィックを処理します。

  1. インターセプトのトグルを Intercept on に設定します
  2. ブラウザで対象 URL に移動します
  3. Proxy > Intercept タブで保持されたリクエストを確認します
  4. リクエストの内容(ヘッダー、パラメータ、ボディ)を確認します
  5. Forward をクリックしてリクエストをサーバーに送信します
  6. ページが読み込まれるまで、後続のリクエストを転送し続けます
HTTP 履歴の表示

完全なトラフィックログにアクセスします。

  1. Proxy > HTTP history タブに移動します
  2. 任意のエントリをクリックして、リクエスト/レスポンス全体を表示します
  3. 列見出しをクリックして並べ替えます(# は時系列順)
  4. フィルターを使用して、関連するトラフィックに絞り込みます
フェーズ 2: リクエストの改変
傍受と改変

転送前にリクエストのパラメータを変更します。

  1. 傍受を有効にします: Intercept on
  2. ブラウザで対象のリクエストを発生させます
  3. 傍受されたリクエスト内で改変するパラメータを見つけます
  4. リクエストエディタで値を直接編集します
  5. Forward をクリックして、改変したリクエストを送信します
一般的な改変対象
対象例目的
価格パラメータprice=1ビジネスロジックのテスト
ユーザー IDuserId=adminアクセス制御のテスト
数量の値qty=-1入力検証のテスト
隠しフィールドisAdmin=true権限昇格のテスト
例: 価格操作
POST /cart HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

productId=1&quantity=1&price=100

# Modify to:
productId=1&quantity=1&price=1

結果: 改変された価格でアイテムがカートに追加されます。

フェーズ 3: ターゲットスコープの設定
スコープの定義

特定のターゲットにテストを絞り込みます。

  1. Target > Site map に移動します
  2. 左パネルでターゲットのホストを右クリックします
  3. Add to scope を選択します
  4. 確認が表示されたら Yes をクリックして、スコープ外のトラフィックを除外します
スコープによるフィルタリング

HTTP 履歴からノイズを取り除きます。

  1. HTTP 履歴の上にある表示フィルターをクリックします
  2. Show only in-scope items を選択します
  3. 履歴にはターゲットサイトのトラフィックのみが表示されるようになります
スコープの利点
  • サードパーティへのリクエストによる雑然さを減らせます
  • スコープ外のサイトを誤ってテストすることを防げます
  • スキャンの効率が向上します
  • より整理されたレポートを作成できます
フェーズ 4: Burp Repeater の使用
Send Request to Repeater

手動テスト用にリクエストを準備します:

  1. HTTP 履歴から興味深いリクエストを特定します
  2. リクエストを右クリックし、Send to Repeater を選択します
  3. Repeater タブに移動してリクエストにアクセスします
Modify and Resend

さまざまな入力を効率的にテストします:

1. View request in Repeater tab
2. Modify parameter values
3. Click Send to submit request
4. Review response in right panel
5. Use navigation arrows to review request history
Repeater Testing Workflow
Original Request:
GET /product?productId=1 HTTP/1.1

Test 1: productId=2    → Valid product response
Test 2: productId=999  → Not Found response  
Test 3: productId='    → Error/exception response
Test 4: productId=1 OR 1=1 → SQL injection test
Analyze Responses

脆弱性の兆候を探します:

  • スタックトレースを露出させるエラーメッセージ
  • フレームワーク/バージョン情報の漏えい
  • ロジックの欠陥を示す異なるレスポンス長
  • ブラインドインジェクションを示唆するタイミングの違い
  • レスポンス内の予期しないデータ
Phase 5: Running Automated Scans
Launch New Scan

脆弱性スキャンを開始します(Professional のみ):

  1. Dashboard タブに移動します
  2. New scan をクリックします
  3. URLs to scan フィールドにターゲット URL を入力します
  4. スキャン設定を構成します
Scan Configuration Options
ModeDescriptionDuration
LightweightHigh-level overview~15 minutes
FastQuick vulnerability check~30 minutes
BalancedStandard comprehensive scan~1-2 hours
DeepThorough testingSeveral hours
Monitor Scan Progress

スキャンのアクティビティを追跡します:

  1. Dashboard でタスクのステータスを確認します
  2. Target > Site map がリアルタイムで更新されるのを確認します
  3. 検出された脆弱性については Issues タブを確認します
Review Identified Issues

スキャン結果を分析します:

  1. Dashboard でスキャンタスクを選択します
  2. Issues タブに移動します
  3. 問題をクリックして次の内容を表示します:
    • Advisory: 説明と修正方法
    • Request: 脆弱性を引き起こした HTTP リクエスト
    • Response: 脆弱性を示すサーバーのレスポンス
Phase 6: Intruder Attacks
Configure Intruder

自動攻撃を設定します:

  1. リクエストを Intruder に送信します(右クリック > Send to Intruder)
  2. Intruder タブに移動します
  3. § マーカーを使用してペイロードの位置を定義します
  4. 攻撃タイプを選択します
Attack Types
TypeDescriptionUse Case
SniperSingle position, iterate payloadsFuzzing one parameter
Battering ramSame payload all positionsCredential testing
PitchforkParallel payload iterationUsername:password pairs
Cluster bombAll payload combinationsFull brute force
Configure Payloads
Positions Tab:
POST /login HTTP/1.1
...
username=§admin§&password=§password§

Payloads Tab:
Set 1: admin, user, test, guest
Set 2: password, 123456, admin, letmein
Analyze Results

攻撃の出力を確認します:

  • レスポンス長でソートして異常を見つけます
  • ステータスコードでフィルタリングして成功した試行を確認します
  • grep を使用して特定の文字列を検索します
  • ドキュメント用に結果をエクスポートします

Quick Reference

Keyboard Shortcuts
ActionWindows/LinuxmacOS
Forward requestCtrl+FCmd+F
Drop requestCtrl+DCmd+D
Send to RepeaterCtrl+RCmd+R
Send to IntruderCtrl+ICmd+I
Toggle interceptCtrl+TCmd+T
Common Testing Payloads
# SQL Injection
' OR '1'='1
' OR '1'='1'--
1 UNION SELECT NULL--

# XSS
<script>alert(1)</script>
"><img src=x onerror=alert(1)>
javascript:alert(1)

# Path Traversal
../../../etc/passwd
..\..\..\..\windows\win.ini

# Command Injection
; ls -la
| cat /etc/passwd
`whoami`
Request Modification Tips
  • 右クリックでコンテキストメニューのオプションを表示します
  • エンコード/デコードには decoder を使用します
  • Comparer ツールを使用してリクエストを比較します
  • 興味深いリクエストはプロジェクトに保存します

Constraints and Guardrails

Operational Boundaries
  • 許可されたアプリケーションのみをテストします
  • 意図しないスコープ外のテストを防ぐため、スコープを設定します
  • サービス拒否を避けるため、スキャンのレートを制限します
  • 検出事項とすべての操作を文書化します
Technical Limitations
  • Community Edition には自動スキャナーがありません
  • 一部のサイトではプロキシのトラフィックがブロックされる場合があります
  • HSTS/証明書ピンニングには追加の設定が必要になる場合があります
  • 大量のスキャンは WAF によるブロックを引き起こす可能性があります
Best Practices
  • 大規模なテストを行う前に、必ずターゲットのスコープを設定します
  • 確実なインターセプトのために Burp のブラウザを使用します
  • 作業内容を保持するため、プロジェクトを定期的に保存します
  • 誤検出がないか、スキャン結果を手動で確認します

Examples

Example 1: Business Logic Testing

Scenario: E-commerce price manipulation

  1. 通常どおりカートに商品を追加し、リクエストをインターセプトします
  2. POST ボディ内の price=9999 パラメーターを特定します
  3. price=1 に変更します
  4. リクエストを転送します
  5. 改ざんした価格で購入手続きを完了します

Finding: サーバーがクライアントから提供された価格の値を信頼しています。

例 2:認証バイパス

シナリオ:ログインフォームのテスト

  1. 有効な認証情報を送信し、Repeater でリクエストをキャプチャします
  2. テストのためにリクエストを Repeater に送信します
  3. username=admin' OR '1'='1'-- を試します
  4. ログイン成功のレスポンスを確認します

発見事項:認証における SQL インジェクション。

例 3:情報漏えい

シナリオ:エラーベースの情報収集

  1. 製品ページに移動し、productId パラメーターを確認します
  2. リクエストを Repeater に送信します
  3. productId=1 を productId=test に変更します
  4. フレームワークのバージョンを露出する詳細なエラーを確認します

発見事項:スタックトレースで Apache Struts 2.5.12 が露出していました。

トラブルシューティング

ブラウザがプロキシ経由で接続しない
  • プロキシリスナーが有効であることを確認します(Proxy > Options)
  • ブラウザのプロキシ設定が 127.0.0.1:8080 を指していることを確認します
  • ローカル接続をブロックしているファイアウォールがないことを確認します
  • 確実にセットアップするには、Burp の組み込みブラウザを使用します
HTTPS インターセプトが失敗する
  • Burp の CA 証明書をブラウザ/システムにインストールします
  • http://burp にアクセスして証明書をダウンロードします
  • 証明書を信頼されたルートに追加します
  • インストール後にブラウザを再起動します
動作が遅い
  • 処理を減らすためにスコープを絞り込みます
  • 不要な拡張機能を無効にします
  • 起動オプションで Java のヒープサイズを増やします
  • 使用していない Burp のタブや機能を閉じます
リクエストがインターセプトされない
  • 「Intercept on」が有効になっていることを確認します
  • インターセプトのルールが対象をフィルタリングしていないことを確認します
  • ブラウザが Burp のプロキシを使用していることを確認します
  • 対象が未サポートのプロトコルを使用していないことを確認します

コメント