O que api-authorization-and-bola faz?
Manual de testes de autorização de API e BOLA. Use quando APIs expõem identificadores de objetos, recursos aninhados, campos ocultos graváveis ou autorização fraca em nível de função.
Visão Geral
Este skill fornece uma metodologia para identificar e explorar vulnerabilidades de autorização em APIs, focando especialmente em Broken Object Level Authorization (BOLA) (também conhecido como IDOR) e Broken Function Level Authorization (BFLA). Ele é compatível com ferramentas como Yaklang e Yakit para automação de testes.
Cenários de Teste
- Identificadores de Objetos: Testar se é possível acessar recursos de outros usuários alterando IDs em parâmetros de URL ou corpo da requisição (ex:
/api/user/123alterado para/api/user/456). - Recursos Aninhados: Verificar se acessar caminhos como
/api/users/{id}/orderspermite visualizar pedidos de outros usuários sem autorização. - Campos Ocultos Graváveis: Identificar campos não documentados em respostas JSON que podem ser modificados para escalar privilégios (ex:
"role": "user"alterado para"role": "admin"). - Autorização Fraca em Funções: Testar endpoints administrativos ou restritos (ex:
/api/admin/users) com tokens de usuários comuns.
Ferramentas Recomendadas
- Yaklang: Para criar scripts de teste automatizados.
- Yakit: Para interceptação e modificação de requisições.
- Burp Suite ou Postman: Para análise manual.
Exemplo de Payload (Yaklang)
// Exemplo de teste BOLA com Yaklang
rsp, req = poc.POC("GET", "https://api.exemplo.com/users/1/profiles", {
headers: {
"Authorization": "Bearer token_invalido",
},
})
if rsp.StatusCode == 200 {
println("Possível vulnerabilidade BOLA detectada!")
}
Boas Práticas
- Sempre autentique-se com diferentes níveis de permissão durante os testes.
- Documente todos os endpoints testados e resultados.
- Verifique se a aplicação retorna mensagens de erro genéricas (evitar vazamento de informações).
- Teste em um ambiente controlado antes de produção.
Referências
- OWASP API Security Top 10 (API1:2019 - Broken Object Level Authorization)
- Documentação Yaklang
Este skill é parte do ecossistema de skills para ferramentas de IA agêntica.