Détournement de compte OAuth via redirect_uri
OAuth account hijacking via redirect_uri
Objectif du laboratoire
Ce laboratoire démontre comment une mauvaise configuration du paramètre redirect_uri dans un flux OAuth permet à un attaquant de voler des codes d’autorisation associés au compte d’un autre utilisateur.
But final :
Intercepter un code d’autorisation OAuth appartenant à l’utilisateur admin
Utiliser ce code pour accéder à son compte
Supprimer l’utilisateur carlos
Contexte et conditions
Le site permet l’authentification via un fournisseur OAuth (réseau social).
L’utilisateur admin :
Ouvre tout lien provenant de l’exploit server.
Possède déjà une session active auprès du fournisseur OAuth.
Identifiants fournis :
Compte social de l’attaquant :
wiener:peter

Analyse du flux OAuth
Lorsqu’un utilisateur se connecte via OAuth, l’application envoie une requête similaire à :
Le point critique est que le fournisseur OAuth n’impose aucune validation stricte du redirect_uri.
Validation de la vulnérabilité
En modifiant le paramètre redirect_uri vers un domaine arbitraire, par exemple :

on observe que :
Le fournisseur OAuth redirige bien vers ce domaine
Le code d’autorisation OAuth est inclus dans l’URL de redirection
Cela confirme que le redirect_uri est exploitable.
Exploitation
L’objectif est maintenant de forcer l’admin à initier une authentification OAuth dont la redirection pointe vers l’exploit server de l’attaquant.
Lien OAuth malveillant utilisé :
Ce lien est intégré dans une page de l’exploit server à l’aide d’une iframe :
Récupération du code d’autorisation
Lorsque l’admin ouvre la page :
Le flux OAuth est exécuté automatiquement
Le fournisseur OAuth redirige vers l’exploit server
Les logs de l’exploit server contiennent plusieurs codes OAuth
Le dernier code reçu est utilisé, par exemple :


Résultat
Le code d’autorisation est valide
L’accès au compte admin est obtenu

Mis à jour