Falhas específicas por linguagem
Cria dado de teste (use o prefixo pentest_). Limpe depois. Só em alvo seu ou autorizado por escrito.
O vetor
Vetor: cada runtime tem armadilhas: Node (prototype pollution), Python (pickle/eval), PHP (LFI/include), Go (path), Java (deserialization).
O que testamos: injeção de __proto__, entradas que viram código, includes controláveis.
Os passos
Passo 1 (🟡) — prototype pollution (Node):
curl -s -X POST "$BASE/api/algum-endpoint" -H "Content-Type: application/json" \
-d '{"__proto__":{"pentest_polluted":true}}' -w "\n%{http_code}\n"
# Depois observe se objetos passam a ter 'pentest_polluted' (comportamento anômalo).
O que esperar
- VULNERÁVEL: o merge de objeto aceita
__proto__/constructore polui o protótipo; entradas chegam aeval/pickle/include. - SEGURO: merges usam
Object.create(null)/allowlist; nuncaevalde input; includes com caminho fixo.
Como corrigir
Correção (P1): bibliotecas seguras de merge, validação de schema, proibir eval/deserialização de input.
Limpeza: reiniciar o processo local se testou em lab (a poluição é em memória).