mcpField
C
competition-graphql-rpc-drift

competition-graphql-rpc-drift

github.com/zhaoxuya520セキュリティ43.7k94 回インストール5 週間前に更新
リポジトリ

competition-graphql-rpc-drift について

宣言された API 契約と実際の GraphQL/RPC ハンドラーを比較し、隠れた操作、古い操作、特権操作を探すセキュリティ向けの後続スキルです。`$ctf-sandbox-orchestrator` が前提と証拠の優先順位を定めた後に使います。

主な機能

  1. 01スキーマ、マニフェスト、生成クライアントの整理
  2. 02実際のリクエストとレスポンスの記録
  3. 03契約上の想定とハンドラーの比較
  4. 04差異を最小限の証明に整理

活用シーン

  1. 01ハンドラーが受け付ける未文書化操作の発見
  2. 02スキーマや永続化クエリのバージョン差異の調査
  3. 03生成クライアントと実際の挙動の不一致の証明

インストール

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

$npx skills add https://github.com/zhaoxuya520/reverse-skill --skill competition-graphql-rpc-drift

インストール後、Claude Code で/competition-graphql-rpc-driftを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlreferences/graphql-rpc-drift.md

詳細

Competition Graphql Rpc Drift

このスキルは、$ctf-sandbox-orchestrator がすでにアクティブで、サンドボックスの前提、ノードの所有権、証拠の優先順位を確立済みである場合にのみ、ダウンストリームの専門特化として使用してください。まだそれが行われていない場合は、まず $ctf-sandbox-orchestrator に戻ってください。

このスキルは、宣言されたコントラクトと実際に稼働しているハンドラーを突き合わせて、隠された、古くなった、または特権的な操作を見つけ出すことが難しい部分である場合に使用します。

ユーザーが明示的に英語を要求しない限り、簡体字中国語で返信してください。

クイックスタート

  1. まず宣言されたコントラクトの表面を収集します。スキーマ、マニフェスト、生成されたクライアント、永続化されたクエリマップ、または OpenAPI 仕様です。
  2. 何かを変更する前に、実際のリクエスト形状、操作名、変数、メソッド、パス、認証コンテキストを記録します。
  3. 宣言されたコントラクト、生成されたクライアントの動作、稼働中のハンドラーの動作を並べて比較します。
  4. 受け入れられた操作を 1 つと、ドリフトしたまたは隠された操作を 1 つ、最小の差分で保持します。
  5. 決定的な分岐を証明する、最小のコントラクトとハンドラーの不一致を再現します。

ワークフロー

1. 宣言されたコントラクトの表面をマッピングする
  • 意図された表面を定義する GraphQL スキーマ、イントロスペクション出力、永続化されたクエリ ID、RPC マニフェスト、生成されたクライアント、または OpenAPI ドキュメントを記録します。
  • バージョン付きエンドポイント、クライアント専用のガード、隠された enum、オプションのフィールド、操作の命名規則に注意します。
  • ドキュメントのソースと生成パスを、観測されたリクエストと結び付けて保持します。
2. 稼働中のハンドラーの動作を証明する
  • 操作名、変数、ヘッダー、Cookie、ステータスを含む、実際のリクエストとレスポンスのペアをキャプチャします。
  • クライアント側の検証、スキーマの期待値、稼働中のハンドラーによる正規化やフォールバックの動作を比較します。
  • 依然として実行される、隠された操作、古くなったフィールド、文書化されていないメソッド、またはハンドラー専用の分岐を記録します。
3. 決定的なドリフト経路に縮約する
  • 結果を最小のシーケンスに圧縮します。宣言されたコントラクト -> 実際のリクエスト -> ハンドラー分岐 -> 結果として得られる機能。
  • 決定的なドリフトが、生成されたクライアントの前提、永続化されたクエリマッピング、スキーマバージョンのずれ、RPC マニフェストの不一致、またはハンドラー側の隠されたロジックのどこにあるのかを明確に述べます。
  • 受け入れ後にタスクが一般的な JWT、OAuth、またはキューの動作へ移行した場合は、より厳密な専門スキルに引き継ぎます。

このリファレンスを読む

  • コントラクトのチェックリスト、稼働中ハンドラーのチェックリスト、証拠のパッケージングについては references/graphql-rpc-drift.md を読み込んでください。

保持すべきもの

  • スキーマ、マニフェスト、生成されたクライアント、永続化されたクエリ ID、操作名、バージョンマーカー
  • 不一致を証明する、受け入れられたリクエストペア 1 つとドリフトしたリクエストペア 1 つ
  • 決定的な効果に到達する、最小のコントラクトとハンドラーのシーケンス 1 つ

コメント