Outils pour utilisateurs

Outils du site


web:injection_xpath

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
web:injection_xpath [2016/03/15 09:02]
yorin
web:injection_xpath [2016/03/16 09:49]
yorin
Ligne 1: Ligne 1:
-__**1) XPATH Authentification**__+**Faille XPath Injection** 
 + 
 +**1.Présentation de la Vulnérabilité ** 
 + 
 +Le principe d'une injection XPath est proche de celui d'une injection SQL. Cela arrive lorsqu'​un site utilises des informations que l'​utilisateur entre pour construire une requête de donnée XML. En envoyant des informations mal formées (de façon intentionnelleil est possible de bypasser des authentifications ou atteindre des données normalement inaccessible. 
 + 
 +**2.Exploit ** 
 + 
 +__2.1 XPATH Authentification__
  
 **Le code :** **Le code :**
Ligne 33: Ligne 41:
 <​code>​ username=admin'​ or '​1'​='​1'​ or ''​='&​password= </​code>​ <​code>​ username=admin'​ or '​1'​='​1'​ or ''​='&​password= </​code>​
  
- +__2.2 Injection string:__
-__**2Injection string:**__+
  
 Ce type d'​injection est possible sur un champs de recherche d'​utilisateur par exemple. ​ Ce type d'​injection est possible sur un champs de recherche d'​utilisateur par exemple. ​
Ligne 85: Ligne 92:
   * **Carlos@decede.fr**   * **Carlos@decede.fr**
   * **Décédé**   * **Décédé**
 +
 +**3.Comment s'en protéger**
 +
 +Tout comme les injections SQL il faut echapper les inputs utilisateurs et "​reconstruire"​ la requête après envoie. Il faut donc échapper la quote (') afin d'​empêcher la fermeture de notre requête. Ici, toutes les ' seront remplacé par la version XML encoded à savoir "&​apos;"​.
 +
 +<​code>​
 +VB:
 +Dim FindUserXPath as String
 +FindUserXPath = "//​Employee[UserName/​text()='"​ & Request("​Username"​).Replace("'",​ "&​apos;"​) & "'​ And 
 +        Password/​text()='"​ & Request("​Password"​).Replace("'",​ "&​apos;"​) & "'​]"​
 +
 +C#:
 +String FindUserXPath;​
 +FindUserXPath = "//​Employee[UserName/​text()='"​ + Request("​Username"​).Replace("'",​ "&​apos;"​) + "'​ And 
 +        Password/​text()='"​ + Request("​Password"​).Replace("'",​ "&​apos;"​) + "'​]";​
 +</​code>​
 +
 +source : [[https://​www.owasp.org/​index.php/​XPATH_Injection]]
web/injection_xpath.txt · Dernière modification: 2016/07/04 08:38 (modification externe)