pentest-business-logic について
許可済みのペネトレーションテストで、ワークフロー、業務ルール、状態の整合性に関する欠陥を調べるスキルです。手順の回避、データ改変、機能制限、決済フローを扱い、WSTGの業務ロジックテストに対応します。
主な機能
- 01ワークフローと業務上の制約の把握
- 02手順の省略・再送・並べ替えのテスト
- 03データ整合性と境界値の確認
- 04機能利用回数の制限回避テスト
- 05ファイルアップロードと決済ロジックの検査
活用シーン
- 01購入や承認フローの前提手順の回避を試す
- 02クーポンの再利用や紹介ループをテストする
- 03価格、数量、リクエストパラメーターの改変を確認する
- 04サンドボックスで割引や部分払いを検証する
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jd-opensource/ joysafeter --skill pentest-business-logicインストール後、Claude Code で/pentest-business-logicを入力して読み込まれたか確認します。
同梱ファイルreferences/tools.mdreferences/workflows.md
詳細
ペンテスト:ビジネスロジック
目的
汚染分析やパターンマッチングでは検出できない、アプリケーションのワークフロー適用、ビジネスルールの検証、ステートマシンの整合性に関する欠陥を特定します。これらの脆弱性を見つけるには、意図された動作を理解し、そこからの逸脱を特定する必要があります。
前提条件
認可要件
- ビジネスロジックテストの対象範囲を明示した書面による認可
- 複数の権限レベル(ユーザー、管理者、プレミアムなど)のテストアカウント
- 金融関連テスト用のテスト用決済手段またはサンドボックス決済環境
- データを変更するテスト(注文の作成、アカウントの変更など)に対するロールバック計画
環境のセットアップ
- Repeater/Intruderを設定したBurp Suite Professional
- 複数ステップのブラウザー自動化用のPlaywrightまたはSelenium
- すべてのアプリケーション通信をキャプチャするように設定したプロキシ
- ワークフローテスト用にシードしたテストデータ(商品、クーポン、ユーザーアカウント)
中核となるワークフロー
- ワークフローのマッピング:調査成果物とソースコードから、複数ステップのフロー(チェックアウト、登録、承認チェーン、オンボーディング)を抽出します。想定される状態遷移とビジネス上の制約を記録します。
- ルールの抽出:サーバー側のビジネス上の制約(価格の検証、数量制限、ロールによって制限される操作、時間ベースの制限、クーポンルール、紹介の上限)を特定します。
- 手順の回避:複数ステップのワークフローで、手順をスキップ、再実行、順序変更します。前提条件を満たさずに最終ステップのエンドポイントへ直接アクセスします(WSTG-BUSL-06)。
- データ整合性の悪用:負の数量、価格ゼロの商品、境界値、ビジネス関連フィールドの型の混同を送信します。偽造リクエストパラメーターをテストします(WSTG-BUSL-02/03)。
- 機能利用回数制限の回避:正規のエンドポイントを通じて、クーポンの再利用、紹介ループ、投票の水増し、リソース枯渇をテストします(WSTG-BUSL-05)。
- ファイルアップロードロジック:想定外のファイル形式、サイズ超過ファイル、ポリグロットファイル、Content-Typeの不一致をテストし、ファイル名を使ったパストラバーサルを試します(WSTG-BUSL-08/09)。
- 決済テスト:チェックアウトの各段階での価格操作、通貨の混同、割引の重ね掛け、一部決済の悪用をテストします(WSTG-BUSL-10)。
WSTGの対象範囲
| WSTG ID | テスト名 | ステータス |
|---|---|---|
| WSTG-BUSL-01 | ビジネスロジックのデータ検証をテストする | ✅ |
| WSTG-BUSL-02 | リクエストを偽造する能力をテストする | ✅ |
| WSTG-BUSL-03 | 整合性チェックをテストする | ✅ |
| WSTG-BUSL-04 | プロセスのタイミングをテストする | ✅ |
| WSTG-BUSL-05 | 機能を使用できる回数の制限をテストする | ✅ |
| WSTG-BUSL-06 | ワークフローの回避をテストする | ✅ |
| WSTG-BUSL-07 | アプリケーションの不正使用に対する防御をテストする | ✅ |
| WSTG-BUSL-08 | 想定外のファイル形式のアップロードをテストする | ✅ |
| WSTG-BUSL-09 | 悪意のあるファイルのアップロードをテストする | ✅ |
| WSTG-BUSL-10 | 決済機能をテストする | ✅ |
ツールのカテゴリ
| カテゴリ | ツール | 目的 |
|---|---|---|
| リクエストの操作 | Burp Repeater、Burp Intruder、mitmproxy | リクエストパラメーターの変更、手順の再実行/順序変更 |
| ブラウザー自動化 | Playwright、Selenium | 複数ステップのワークフローテスト、UI操作 |
| スクリプト作成 | Python requests、aiohttp | ワークフローを悪用するカスタムスクリプト、並列リクエスト |
| ファイルアップロード | カスタムポリグロット生成ツール、ExifTool | ファイル形式の混同、メタデータの挿入 |
| 決済テスト | Stripeのテストモード、PayPal sandbox | 安全な決済操作のテスト |
参考資料
references/tools.md- ツールの関数シグネチャとパラメーターreferences/workflows.md- 攻撃パターンの定義とテストベクター
コメント
Markdown 対応