testing-api-security-with-owasp-top-10
Ensina seu agente de IA a testar o código e achar erros antes dos usuários e proteger aplicações contra ataques.
O que ela faz
Esta ferramenta ajuda a verificar a segurança de APIs (como as que alimentam aplicativos de celular ou web). Ela testa se a API está protegida contra ataques comuns, usando ferramentas específicas para encontrar falhas.
Quando usar
- ✓Ao testar a segurança de uma API autorizada.
- ✓Antes de colocar uma nova API em produção.
- ✓Para verificar se os controles de segurança da API estão funcionando.
Exemplo do que pedir para a IA
“Verifique a segurança desta API contra as vulnerabilidades OWASP Top 10.”
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 usa programas como Burp Suite e Postman para enviar requisições à API e analisar as respostas. Ela procura por padrões de ataque conhecidos para encontrar fraquezas.
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 testing-api-security-with-owasp-top-10Ou baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/testing-api-security-with-owasp-top-10/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.
Testando a Segurança de APIs com o OWASP Top 10
Quando Usar
- Durante engajamentos autorizados de testes de penetração de APIs
- Ao avaliar APIs REST, GraphQL ou gRPC quanto a vulnerabilidades de segurança
- Antes de implantar novos endpoints de API em ambientes de produção
- Ao revisar a postura de segurança de APIs contra o OWASP API Security Top 10 (2023)
- Para validar controles de segurança de gateways de API e a eficácia do rate limiting
Pré-requisitos
- Autorização: Documento de escopo escrito cobrindo todos os endpoints de API a serem testados
- Burp Suite Professional: Para interceptar e modificar requisições de API
- Postman: Para organizar e executar coleções de testes de API
- ffuf: Para fuzzing de endpoints e parâmetros de API
- curl/httpie: Clientes HTTP de linha de comando para testes manuais
- Documentação da API: Especificação Swagger/OpenAPI, schema GraphQL ou documentação da API
- jq: Processador JSON para analisar respostas de API (
apt install jq)
Fluxo de Trabalho
Passo 1: Descobrir e Mapear Endpoints de API
Enumere todos os endpoints de API disponíveis e entenda a superfície da API.
# If OpenAPI/Swagger spec is available, download it
curl -s "https://api.target.example.com/swagger.json" | jq '.paths | keys[]'
curl -s "https://api.target.example.com/v2/api-docs" | jq '.paths | keys[]'
curl -s "https://api.target.example.com/openapi.yaml"
# Fuzz for API endpoints
ffuf -u "https://api.target.example.com/api/v1/FUZZ" \
-w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints.txt \
-mc 200,201,204,301,401,403,405 \
-fc 404 \
-H "Content-Type: application/json" \
-o api-enum.json -of json
# Fuzz for API versions
for v in v1 v2 v3 v4 beta internal admin; do
status=$(curl -s -o /dev/null -w "%{http_code}" \
"https://api.target.example.com/api/$v/users")
echo "$v: $status"
done
# Check for GraphQL endpoint
for path in graphql graphiql playground query gql; do
status=$(curl -s -o /dev/null -w "%{http_code}" \
-X POST -H "Content-Type: application/json" \
-d '{"query":"{__typename}"}' \
"https://api.target.example.com/$path")
echo "$path: $status"
done
Passo 2: Testar API1 - Autorização Quebrada em Nível de Objeto (BOLA)
Teste se os usuários podem acessar objetos pertencentes a outros usuários manipulando IDs.
# Authenticate as User A and get their resources
TOKEN_A="Bearer eyJhbGciOiJIUzI1NiIs..."
curl -s -H "Authorization: $TOKEN_A" \
"https://api.target.example.com/api/v1/users/101/orders" | jq .
# Try accessing User B's resources with User A's token
curl -s -H "Authorization: $TOKEN_A" \
"https://api.target.example.com/api/v1/users/102/orders" | jq .
# Fuzz object IDs with Burp Intruder or ffuf
ffuf -u "https://api.target.example.com/api/v1/orders/FUZZ" \
-w <(seq 1 1000) \
-H "Authorization: $TOKEN_A" \
-mc 200 -t 10 -rate 50
# Test IDOR with different ID formats
# Numeric: /users/102
# UUID: /users/550e8400-e29b-41d4-a716-446655440000
# Encoded: /users/MTAy (base64)
Passo 3: Testar API2 - Autenticação Quebrada
Avalie os mecanismos de autenticação quanto a fraquezas.
# Test for missing authentication
curl -s "https://api.target.example.com/api/v1/users" | jq .
# Test JWT token vulnerabilities
# Decode JWT without verification
echo "eyJhbGciOiJIUzI1NiIs..." | cut -d. -f2 | base64 -d 2>/dev/null | jq .
# Test "alg: none" attack
# Header: {"alg":"none","typ":"JWT"}
# Create unsigned token with modified claims
# Test brute-force protection on login
ffuf -u "https://api.target.example.com/api/v1/auth/login" \
-X POST -H "Content-Type: application/json" \
-d '{"email":"admin@target.com","password":"FUZZ"}' \
-w /usr/share/seclists/Passwords/Common-Credentials/top-1000.txt \
-mc 200 -t 5 -rate 10
# Test password reset flow
curl -s -X POST "https://api.target.example.com/api/v1/auth/reset" \
-H "Content-Type: application/json" \
-d '{"email":"victim@target.com"}'
# Check if token is in response body instead of email only
Passo 4: Testar API3 - Autorização Quebrada em Nível de Propriedade de Objeto
Teste a exposição excessiva de dados e vulnerabilidades de atribuição em massa.
# Verificar dados excessivos em respostas
curl -s -H "Authorization: $TOKEN_A" \
"https://api.target.example.com/api/v1/users/101" | jq .
# Procurar por: hashes de senha, SSNs, IDs internos, flags de admin, PII
# Testar atribuição em massa - tentar adicionar propriedades de admin
curl -s -X PUT \
-H "Authorization: $TOKEN_A" \
-H "Content-Type: application/json" \
-d '{"name":"Test User","role":"admin","is_admin":true}' \
…
Perguntas frequentes
O que é OWASP Top 10?
É uma lista das 10 vulnerabilidades de segurança mais críticas encontradas em aplicações web e APIs.
Preciso de permissão para usar esta ferramenta?
Sim, você precisa de autorização explícita e um documento de escopo detalhando quais APIs podem ser testadas.
Quais ferramentas são necessárias?
Você precisará de Burp Suite Professional, Postman, ffuf, curl/httpie e jq, além da documentação da API.
Detalhes
Descrição original do autor
Systematically assesses REST, GraphQL, and gRPC API endpoints against the OWASP API Security Top 10 (2023) using Burp Suite and Postman for automated and manual testing. Use during authorized API penetration tests, before deploying new endpoints to production, or when validating API gateway controls and rate limiting.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6217
- 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
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC