api-authorization-and-bola について
api-authorization-and-bolaは、BOLA、BFLA、マスアサインメントを含むAPIのオブジェクト認可と機能認可を検証するスキルです。2つのアカウントを使うテスト手順と、関連エンドポイント、HTTPメソッド、隠しフィールドの確認方法を示します。
主な機能
- 01BOLAとBFLAのテスト手順
- 022アカウントでのトークン再試行確認
- 03ネストしたリソースとエンドポイントの確認
- 04代替HTTPメソッドのテスト
- 05隠しフィールド制御の確認
活用シーン
- 01アカウント間のオブジェクトアクセス比較
- 02ネストしたリソースの認可確認
- 03管理機能のアクセス制御テスト
- 04隠しフィールドの書き込み可否確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ yaklang/ hack-skills --skill api-authorization-and-bolaインストール後、Claude Code で/api-authorization-and-bolaを入力して読み込まれたか確認します。
詳細
スキル: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. テスターが見落としがちな点
- ヘッダー、Cookie、GraphQL 引数、ネストされたオブジェクト内のオブジェクト ID
- 同じルートを共有しながら、より弱い認可を持つ代替メソッド
- 親オブジェクトのチェックはあるが、子リソースのチェックがない
- 書き込み可能なフィールドが追加で記載された管理者向けドキュメント
5. 次のルーティング
- JWT またはトークン層の悪用については、API 認証と JWT の悪用を参照してください。
- GraphQL と非表示パラメーターの発見については、GraphQL と非表示パラメーターを参照してください。
- API 以外のより広範な IDOR パターンについては、IDOR(オブジェクト認可の不備)を参照してください。
コメント
Markdown 対応