graphql-and-hidden-parameters は何をしますか?
GraphQLと隠しパラメータのテストプレイブック。イントロスペクション、バッチ処理、未定義フィールド、隠しパラメータ、スキーマの悪用、GraphQLの認可のギャップを調査する際に使用します。
概要
このプレイブックは、GraphQL APIのセキュリティ評価と、アプリケーション内の隠しパラメータの発見に焦点を当てています。以下のテストパターンをカバーします:
- イントロスペクションクエリ:スキーマ情報の取得
- バッチ処理攻撃:エイリアスを使用した複数クエリの同時実行
- 未定義フィールドの探索:公開されていないフィールドの発見
- 隠しパラメータのテスト:ドキュメントに記載されていないパラメータの検出
- スキーマの悪用:過剰なクエリ深度や複雑なクエリによるDoSテスト
- 認可のギャップ:認証バイパスや権限昇格のテスト
前提条件
- Yaklang環境がインストールされていること
- 対象のGraphQLエンドポイントのURL
- 必要な認証情報(該当する場合)
使用方法
-
ターゲットエンドポイントに対してイントロスペクションクエリを送信する:
{ __schema { types { name fields { name type { name } } } } } -
バッチ処理攻撃を試行する:
{ user1: user(id: 1) { name } user2: user(id: 2) { name } # ... 他のエイリアス } -
隠しパラメータを探索する:
yak hidden-param scan --url <target_url>
注意事項
- テストは許可された環境でのみ実行してください。
- 過剰なリクエストを送信しないよう注意してください。
- ファイアウォールやWAFが有効な場合は、ブロックされる可能性があります。
関連リソース
ライセンス: MIT
貢献: バグ報告や機能リクエストはGitHubのIssueで受け付けています。