Description
L'attaque vise à exploiter les failles dans le mécanisme de décodage mis en œuvre sur des applications lors du décodage de données Unicode. Un attaquant peut utiliser cette technique pour coder certains caractères dans l'URL pour contourner les filtres d'application, pour restreindre l'accès aux ressources sur le serveur Web ou pour forcer la navigation aux pages protégées.
Considérons par exemple une application web qui a limité l'accès de certains répertoires ou fichiers (par exemple, un fichier contenant les noms d'utilisateur d'application: appusers.txt). Un attaquant peut coder la séquence de caractères “.. /” (Chemin d'attaque PathTraversal) en utilisant le format Unicode et tenter d'accéder à la ressource protégée, comme suit:
URL originale d'une attaque path Traversal (sans encodage Unicode):
http://vulneapplication/../../appusers.txt
URL originale d'une attaque path Traversal avec encodage Unicode:
http://vulneapplication/%C0AE%C0AE%C0AF%C0AE%C0AE%C0AFappusers.txt
Le codage Unicode pour l'URL ci-dessus produira le même résultat que la première URL (attaque Path Traversal). Toutefois, si l'application dispose d'un mécanisme de sécurité du filtre d'entrée, il peut refuser toute demande qui contient “.. /”, bloquant ainsi l'attaque. Cependant, si ce mécanisme ne tient pas compte de l'encodage des caractères, l'attaquant peut contourner et accéder à des ressources protégées.
Les autres conséquences de ce type d'attaque sont une escalade de privilège, l'exécution de code arbitraire, la modification des données, et le déni de service.
