Injection de commandes système exécutées par l'application sur le serveur hôte.
L'injection de commandes (Command Injection ou OS Command Injection) est une vulnérabilité où une application transmet des entrées utilisateur non sanitisées à un shell système (sh, bash, cmd.exe, PowerShell), permettant à l'attaquant d'exécuter des commandes arbitraires avec les privilèges du processus applicatif. C'est l'une des vulnérabilités les plus dangereuses car elle mène directement au RCE.
Exemple : un script PHP system("ping -c 1 " . _GET['host']) est appelé avec `?host=8.8.8.8; cat /etc/passwd` — le shell interprète le `;` comme séparateur et exécute les deux commandes. Les caractères à risque : ; & | && || backtick, dollar-paren, dollar-accolade, < > newline. Cas célèbres : Shellshock (CVE-2014-6271, bash via variables d'env CGI), de nombreux routeurs SOHO avec des interfaces admin vulnérables.
Mitigations : (1) éviter complètement les appels shell — utiliser les APIs natives du langage (file_get_contents au lieu de cat, fonctions DNS au lieu de host/nslookup) ; (2) si shell nécessaire, utiliser execve avec un array d'arguments (pas de shell interpolation) — exec() en Python avec liste, ProcessBuilder en Java, escapeshellarg/escapeshellcmd en PHP ; (3) whitelist stricte des entrées ; (4) sandbox (containers, seccomp, AppArmor). Référencé dans OWASP Top 10 (A03:2021).
200+ certifications, 400 000+ questions, examens blancs chronométrés.
Voir le catalogue →