COMMAND INJECTION (CMDI)

1. LE DANGER DE SHELL_EXEC

Les développeurs utilisent parfois des fonctions comme shell_exec(), system() ou exec() pour lancer des commandes système (ex: ping, grep, image processing).

Si l'entrée utilisateur est concaténée directement dans la commande sans être nettoyée, c'est la catastrophe.

$target = $_POST['ip']; // Imaginons "8.8.8.8" $cmd = "ping -c 3 " . $target; shell_exec($cmd);

2. LES SÉPARATEURS DE COMMANDE

Dans un shell (Linux/Bash), on peut enchaîner plusieurs commandes sur une même ligne grâce aux séparateurs :

3. L'EXPLOIT

Si l'utilisateur entre : 8.8.8.8; ls -la

Le serveur exécute :

ping -c 3 8.8.8.8; ls -la

Il va faire le ping... PUIS lister tous les fichiers du répertoire !

C'est une RCE (Remote Code Execution). L'attaquant a pris le contrôle du serveur.



RETOUR AU LAB