Pular para o conteúdo
Skillpedia
Segurança35 mil · #6217

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/testing-api-security-with-owasp-top-10/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/testing-api-security-with-owasp-top-10/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-10

Ou 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.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.

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.

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6217
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