Command Injection

Como Explorar

Command Injection permite que um atacante injete e execute comandos do sistema operacional através de entradas da aplicação.

terminal
Exemplo:

GET /ping?host=8.8.8.8;cat%20/etc/passwd
  • Insira comandos encadeados em parâmetros.
  • Observe respostas e efeitos no sistema.
  • Tente comandos como ;, &&, |.

Por que acontece

Ocorre quando a aplicação executa comandos do SO com dados do usuário sem validação ou sanitização adequada.

  • Concatenação direta de entradas do usuário em comandos.
  • Uso de funções como exec, system, popen sem restrições.
  • Falta de validação de parâmetros.

Como Corrigir

  • Sanitize e valide todas as entradas do usuário.
  • Evite executar comandos diretamente do input do usuário.
  • Use APIs seguras e listas de comandos permitidos.
terminal
// Exemplo seguro em Node.js
const allowedHosts = ['8.8.8.8'];
if (!allowedHosts.includes(userHost)) throw new Error('Host não permitido');