api-authorization-and-bola
APIの認可制御およびBOLA(オブジェクトレベルアクセス制御の不備)をテストするためのプレイブック。APIがオブジェクトIDや入れ子リソース、隠れた書き込み可能フィールド、または不十分な機能レベルの認可を公開している場合に使用します。
description の原文を見る
>- API authorization and BOLA testing playbook. Use when APIs expose object identifiers, nested resources, hidden writable fields, or weak function-level authorization.
SKILL.md 本文
SKILL: API 認可と BOLA — オブジェクトアクセス、機能アクセス、およびマス割り当て
AI LOAD INSTRUCTION: API がオブジェクト ID、ネストされたリソース、またはロール依存の機能を公開していて、焦点を絞った認可テストパスが必要な場合に、このスキルを使用してください: BOLA、BFLA、メソッド悪用、および隠しフィールド制御。
1. コアテストループ
- アカウント A とアカウント B を作成します。
- アカウント A として、作成、読み取り、更新、削除フローをキャプチャします。
- アカウント B のトークンで再生します。
- 兄弟エンドポイント、ネストされたエンドポイント、および代替 HTTP 動詞をテストします。
2. テストサーフェス
| サーフェス | 例 |
|---|---|
| オブジェクト読み取り | /api/v1/orders/123 |
| ネストされたオブジェクト | /api/v1/users/1/invoices/9 |
| 管理またはシステム関数 | /api/v1/admin/users |
| 更新パス | PUT、PATCH、DELETE バリアント |
| 隠しJSON フィールド | role、org、verified、tier |
3. クイックペイロード
{"role":"admin"}
{"isAdmin":true}
{"org":"target-company"}
{"verified":true}
4. テスターが見落とすこと
- ヘッダー、クッキー、GraphQL 引数、およびネストされたオブジェクト内のオブジェクト ID
- 同じルートを共有しているが認可が弱い代替メソッド
- 親チェックは存在するが、子リソースチェックは欠落している
- 追加の書き込み可能フィールドを表示する管理ドキュメント
5. 次のルーティング
- JWT またはトークンレイヤー悪用の場合:
api auth and jwt abuse - GraphQL および隠しパラメータ検出の場合:
graphql and hidden parameters - API の外側の広い IDOR パターンの場合:
idor broken object authorization
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- yaklang
- リポジトリ
- yaklang/hack-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/yaklang/hack-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。