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');