pentest-web-application-logic-mapper について
Webアプリのペネトレーションテスト向けに、ワークフロー、状態遷移、ルート、信頼境界を整理するスキルです。クロールデータや資料から、検証済みのテスト対象を特定します。
主な機能
- 01ルート、フォーム、API、クライアント側呼び出しの整理
- 02状態、操作、ロール、副作用のモデル化
- 03隠れたエンドポイントと信頼境界の特定
- 04確認済みの事実と仮説の区別
- 05検証スキルへの対象引き継ぎ
活用シーン
- 01複数段階の決済や承認ワークフローの把握
- 02リンクされていないアクセス可能なエンドポイントの発見
- 03手順の省略や不正な状態変更の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ crtvrffnrt/ skills --skill pentest-web-application-logic-mapperインストール後、Claude Code で/pentest-web-application-logic-mapperを入力して読み込まれたか確認します。
詳細
Web Application Logic Mapper
目的
アプリケーションのワークフロー、ステートマシン、隠れたサーフェスをマッピングし、後続の検証が具体的なルート、アクション、信頼境界を起点として開始できるようにします。
使用する場面
- 担当フェーズが、スパイダリング、クロール、隠れたルートの発見、ステートマシンのマッピング、ワークフローのモデリング、またはルートとアクションの関係性のマッピングである場合。
- リコンで稼働中のアプリケーションサーフェスが見つかったものの、焦点を絞った検証に必要なワークフローのコンテキストが不十分な場合。
対象範囲
- 複雑な複数ステップのワークフロー(チェックアウト、登録、承認プロセス)。
- 状態に依存するアクション(例:「Draft」→「Pending」→「Published」)。
- 非公開または文書化されていない API エンドポイントとパラメーター。
入力
Spider/Crawl Data:発見した URL とフォームの一覧。API Documentation:Swagger/OpenAPI 仕様、WSDL(利用可能な場合)。User Manuals/Help Docs:想定されるワークフローの説明。
出力
State Machine Diagram:有効な状態と遷移の可視化。Logic Flaw Report:無効な状態遷移や手順のスキップの特定。Hidden Surface Map:リンクされていないがアクセス可能なエンドポイントの一覧。
成功指標
- ワークフローのバイパス:必須の手順(例:支払い)をスキップして、プロセスを完了すること。
- 状態の操作:オブジェクトを無効または有利な状態に強制的に変更すること(例:クローズ済みのチケットを再オープンする)。
- 隠れた機能の発見:一般公開を意図していないベータ版、デバッグ用、またはレガシー機能にアクセスすること。
ワークフロー
- ID コンテキスト、セッション状態、スコープ境界を確立します。
- ナビゲート可能なルート、隠れたルート、フォーム、API、クライアント側の呼び出しをマッピングします。
- アクションをオブジェクト、ロール、状態、副作用に関連付けます。
- 悪用のテストを行う前に、信頼境界と特権的な遷移を特定します。
- 確認済みのルート、仮説、却下したパス、不明点をそれぞれ分けて記録します。
- 検証スキルに正確な対象を引き継ぎます。
検証ゲート
- 隠れたサーフェスは、到達可能と判断する前に、影響の小さい直接リクエストで確認します。
- 手順のスキップや無効な遷移に関する主張を報告する前に、ワークフローの制御を使用します。
- クローラーの出力は、手動またはプログラムによる検証が済むまでは手がかりとして扱います。
一般的な攻撃ベクトルとプリミティブ
- 競合状態:同時リクエストを送信し、タイミングの隙を悪用します(例:クーポンを二度使用する)。
- ビジネスロジックのエラー:ビジネスルールの実装上の欠陥を悪用します(例:カート内の商品数を負の値にする)。
- 強制ブラウジング:UI を経由せず、URL に直接アクセスします。
- マスアサインメント:リクエストボディに内部オブジェクトのプロパティ(例:
isAdmin、balance)を含めて変更します。
テストする制御
- 状態の検証:サーバーが有効な状態遷移を強制することを確認します。
- トランザクションの整合性:重要な操作がアトミックかつ一貫性を保って実行されることを確認します。
- レート制限:総当たり攻撃や悪用を防ぐため、機密性の高いアクションに制限があるか確認します。
引き継ぎ条件
- 無効な遷移、競合の隙、リプレイ、またはクォータの悪用が担当フェーズとなった場合は、
pentest-business-logic-abuseに引き継ぎます。 - ルートへのアクセスがロール、所有権、セッション、またはテナントに依存する場合は、
pentest-advanced-access-control-auditorまたはpentest-authentication-authorization-reviewに引き継ぎます。 - パーサーの動作やブラウザーのシンクが主な阻害要因である場合は、
pentest-input-protocol-manipulationまたはpentest-xssに引き継ぎます。
コメント
Markdown 対応