Table des matières:
Définition - Que signifie injection XPath?
L'injection XPath est une technique d'attaque utilisée pour exploiter les applications utilisées pour construire des requêtes XPath basées sur les entrées fournies par l'utilisateur. Il peut être utilisé directement par une application pour interroger un document XML, même dans le cadre d'un processus plus vaste tel que la transformation XSLT en document XML. Par rapport aux injections SQL, les injections XPath sont plus destructrices, car XPath manque de contrôle d'accès et permet d'interroger des bases de données complètes. L'interrogation complète d'une base de données SQL est difficile, car les métatables ne peuvent pas être interrogées à l'aide de requêtes régulières.
Techopedia explique XPath Injection
XPath, étant un langage standard, a une syntaxe indépendante de l'implémentation. Cela rend l'attaque de nature plus automatisée. Une attaque par injection XPath fonctionne de la même manière que l'injection SQL, le site Web utilisant des informations fournies par l'utilisateur pour construire la requête XPath pour les données XML. Des informations malformées sont intentionnellement injectées dans le site Web, ce qui permet à l'attaquant de comprendre la méthode selon laquelle les données XML sont structurées pour obtenir un accès aux données qui autrement resterait non autorisé. Les attaquants peuvent ensuite augmenter les privilèges dont ils disposent sur le site Web en manipulant le processus d'authentification des données XML. En d'autres termes, comme l'injection SQL, la technique consiste à spécifier certains attributs et à obtenir les modèles qui peuvent être mis en correspondance, ce qui permet ensuite à l'attaquant de contourner l'authentification ou d'accéder aux informations de manière non autorisée. La plus grande différence entre l'injection XPath et l'injection SQL est que l'injection XPath utilise des fichiers XML pour le stockage des données, tandis que SQL utilise une base de données.
L'injection XPath peut être évitée à l'aide de techniques de défense telles que la désinfection des entrées utilisateur ou le traitement de toutes les entrées utilisateur comme non fiables et l'exécution des techniques de désinfection nécessaires ou le test approfondi des applications qui fournissent ou utilisent les entrées utilisateur.
