api-authorization-and-bola — скилл для Claude Code: тесты BOLA
Плейбук для проверки авторизации в API: доступ к чужим объектам, вызовы функций не по роли и скрытые записываемые поля.
npx skills add yaklang/hack-skills --skill api-authorization-and-bola -a claude-codeЧто делает api-authorization-and-bola
Скилл задаёт порядок проверки авторизации на уровне объектов и функций. Сначала вы заводите два аккаунта, снимаете с первого цепочку create, read, update и delete, а потом повторяете те же запросы с токеном второго. Дальше идут соседние эндпоинты, вложенные ресурсы и другие HTTP-методы на том же маршруте.
Внутри — таблица поверхностей для теста: чтение объекта вида /api/v1/orders/123, вложенный ресурс /api/v1/users/1/invoices/9, админский маршрут /api/v1/admin/users, варианты PUT, PATCH и DELETE, а ещё скрытые поля JSON вроде role, org, verified и tier. Отдельный блок напоминает, что идентификаторы объектов прячутся в заголовках, cookie, аргументах GraphQL и вложенных объектах, а проверка родителя бывает на месте, тогда как дочерний ресурс её не имеет. Потому и стоит смотреть на методы, которые делят один маршрут, но защищены слабее.
Это наступательный скилл для тестирования безопасности, не для продакшена. Запускать его нужно только на своих стендах или там, где есть письменное разрешение: запросы с чужим токеном к живым данным — это уже реальный доступ, а не проверка. Если работа упирается в слой токенов, есть переход к ../api-auth-and-jwt-abuse/SKILL.md, для GraphQL и поиска скрытых параметров — к ../graphql-and-hidden-parameters/SKILL.md.
Какие задачи решает
- проверить, отдаёт ли API чужой объект по прямому идентификатору
- найти админские и внутренние функции, доступные обычной роли
- поймать скрытые поля вроде
roleилиverified, которые принимает запрос на обновление - сравнить защиту методов
PUT,PATCHиDELETEна одном маршруте - проверить вложенный ресурс, у которого нет проверки родителя
Примеры запросов агенту
- прогони плейбук api-authorization-and-bola по эндпоинту
/api/v1/orders/{id}с двумя аккаунтами - проверь по скиллу, принимает ли
PATCH /api/v1/users/1полеrole - используй api-authorization-and-bola: сравни доступ к
/api/v1/users/1/invoices/9с токенами A и B
Как установить api-authorization-and-bola
1Через Skills CLI (Vercel)
npx skills add yaklang/hack-skills --skill api-authorization-and-bola -a claude-code2Вручную: положить файлы
~/.claude/skills/api-authorization-and-bola/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/api-authorization-and-bola/
1Через Skills CLI (Vercel)
npx skills add yaklang/hack-skills --skill api-authorization-and-bola -a codex2Вручную: положить файлы
.agents/skills/api-authorization-and-bola/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add yaklang/hack-skills --skill api-authorization-and-bola -a cursor2Вручную: положить файлы
.cursor/skills/api-authorization-and-bola/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install yaklang/hack-skills api-authorization-and-bola2Вручную: положить файлы
.github/skills/api-authorization-and-bola/SKILL.md1Через Skills CLI (Vercel)
npx skills add yaklang/hack-skills --skill api-authorization-and-bola -a gemini-cli2Командой платформы
gemini skills install https://github.com/yaklang/hack-skills --path skills/api-authorization-and-bolaВручную: положить файлы
.devin/skills/api-authorization-and-bola/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add yaklang/hack-skills --skill api-authorization-and-bola -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора93
Похожие
Рядом в теме «Безопасность»
Всё по теме «Безопасность» →Вопросы о api-authorization-and-bola
Как установить api-authorization-and-bola в Claude?
Выполните npx skills add yaklang/hack-skills --skill api-authorization-and-bola -a claude-code. После этого файл скилла лежит в ~/.claude/skills/api-authorization-and-bola/SKILL.md.
Что делает api-authorization-and-bola?
Даёт пошаговый путь проверки авторизации API: BOLA на объектах, доступ к функциям не по роли, злоупотребление методами и управление скрытыми полями.
С какими скиллами он связан?
Для работы со слоем токенов есть переход к api-auth-and-jwt-abuse, для GraphQL и скрытых параметров — к graphql-and-hidden-parameters, для IDOR вне API — к idor-broken-object-authorization.
Исходный текст
SKILL.md · MIT
---
name: api-authorization-and-bola
description: >-
API authorization and BOLA testing playbook. Use when APIs expose object identifiers, nested resources, hidden writable fields, or weak function-level authorization.
---
# SKILL: API Authorization and BOLA — Object Access, Function Access, and Mass Assignment
> **AI LOAD INSTRUCTION**: Use this skill when an API exposes object IDs, nested resources, or role-sensitive functions and you need a focused authorization test path: BOLA, BFLA, method abuse, and hidden field control.
## 1. CORE TEST LOOP
1. Create Account A and Account B.
2. As Account A, capture create, read, update, and delete flows.
3. Replay with Account B's token.
4. Test sibling endpoints, nested endpoints, and alternate HTTP verbs.
## 2. TEST SURFACES
| Surface | Example |
|---|---|
| object read | `/api/v1/orders/123` |
| nested object | `/api/v1/users/1/invoices/9` |
| admin or internal function | `/api/v1/admin/users` |
| update path | `PUT`, `PATCH`, `DELETE` variants |
| hidden JSON fields | `role`, `org`, `verified`, `tier` |
## 3. QUICK PAYLOADS
```json
{"role":"admin"}
{"isAdmin":true}
{"org":"target-company"}
{"verified":true}
```
## 4. WHAT TESTERS MISS
- object IDs in headers, cookies, GraphQL args, and nested objects
- alternate methods sharing the same route but weaker authz
- parent check present, child resource check missing
- admin docs revealing extra writable fields
## 5. NEXT ROUTING
- For JWT or token-layer abuse: [api auth and jwt abuse](../api-auth-and-jwt-abuse/SKILL.md)
- For GraphQL and hidden parameter discovery: [graphql and hidden parameters](../graphql-and-hidden-parameters/SKILL.md)
- For broader IDOR patterns outside APIs: [idor broken object authorization](../idor-broken-object-authorization/SKILL.md)
© yaklang · MIT · yaklang/hack-skills