Injection XPath
Qu'est-ce que Injection XPath ?
Injection XPathFaille d'injection où une entrée non fiable modifie une requête XPath contre un document XML, permettant l'exfiltration ou le contournement d'authentification.
L'injection XPath survient quand une application construit des requêtes XPath sur un document XML par concaténation de chaînes utilisateur, à l'instar de l'injection SQL classique. Un attaquant peut sortir de l'expression visée avec des guillemets, des tautologies booléennes comme ' or '1'='1, ou des commentaires, afin d'extraire des nœuds arbitraires, contourner des formulaires de login adossés à un magasin XML, ou exfiltrer aveuglément des données via des oracles booléens et temporels. La faille touche surtout les services SOAP anciens, les back-ends de configuration et les applications stockant des identifiants en XML. Les défenses incluent les API XPath paramétrées, une validation stricte par liste blanche et la migration vers des stockages plus sûrs.
● Exemples
- 01
Requête de login //user[name/text()='admin' or '1'='1' and password/text()='x'] contournant l'authentification.
- 02
Exfiltration XPath aveugle via des conditions booléennes comme substring(//secret,1,1)='a'.
● Questions fréquentes
Qu'est-ce que Injection XPath ?
Faille d'injection où une entrée non fiable modifie une requête XPath contre un document XML, permettant l'exfiltration ou le contournement d'authentification. Cette notion relève de la catégorie Attaques et menaces en cybersécurité.
Que signifie Injection XPath ?
Faille d'injection où une entrée non fiable modifie une requête XPath contre un document XML, permettant l'exfiltration ou le contournement d'authentification.
Comment fonctionne Injection XPath ?
L'injection XPath survient quand une application construit des requêtes XPath sur un document XML par concaténation de chaînes utilisateur, à l'instar de l'injection SQL classique. Un attaquant peut sortir de l'expression visée avec des guillemets, des tautologies booléennes comme ' or '1'='1, ou des commentaires, afin d'extraire des nœuds arbitraires, contourner des formulaires de login adossés à un magasin XML, ou exfiltrer aveuglément des données via des oracles booléens et temporels. La faille touche surtout les services SOAP anciens, les back-ends de configuration et les applications stockant des identifiants en XML. Les défenses incluent les API XPath paramétrées, une validation stricte par liste blanche et la migration vers des stockages plus sûrs.
Comment se défendre contre Injection XPath ?
Les défenses contre Injection XPath combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de Injection XPath ?
Noms alternatifs courants : Injection de requête XPath.
● Termes liés
- attacks№ 1084
Injection SQL
Attaque par injection de code qui insère du SQL contrôlé par l'attaquant dans une requête de base de données, permettant de lire, modifier ou détruire des données.
- attacks№ 612
Injection LDAP
Attaque par injection qui manipule des filtres de recherche LDAP ou des DN via une entrée non assainie pour contourner l'authentification ou lire des données d'annuaire.
- attacks№ 1255
Injection XML
Attaque qui insère des balises, attributs ou fragments XPath malveillants dans le traitement XML d'une application pour modifier la logique ou extraire des données.
- attacks№ 1257
Attaque XXE
Attaque contre les parseurs XML qui abuse de la résolution d'entités externes pour lire des fichiers, sonder le réseau interne ou provoquer un déni de service.
- appsec№ 538
Validation des entrées
Contrôle côté serveur vérifiant que chaque entrée non fiable correspond au type, à la longueur, à la plage, au format et à l'ensemble de valeurs attendus avant tout traitement.
- attacks№ 202
Injection de commandes
Attaque où une entrée utilisateur est transmise sans assainissement à un shell système, amenant l'application à exécuter des commandes fournies par l'attaquant.