Comprendre et rechercher les vulnérabilités Open Redirect

La traduction de l'article a été préparée en prévision du début du cours "Web Application Security" .








L'une des vulnĂ©rabilitĂ©s les plus courantes et pourtant nĂ©gligĂ©es par les dĂ©veloppeurs Web est la redirection ouverte (Ă©galement connue sous le nom de redirections et transferts non vĂ©rifiĂ©s). Un site Web est considĂ©rĂ© comme vulnĂ©rable Ă  la redirection ouverte si les valeurs de paramĂštre (la partie de l'URL aprĂšs le "?") Dans la requĂȘte HTTP GET redirigent l'utilisateur vers un nouveau site sans vĂ©rifier le site cible. En fonction de l'architecture du site vulnĂ©rable, la redirection peut se produire aprĂšs certaines actions, comme la connexion, et parfois elle peut se produire instantanĂ©ment lors du chargement de la page.



Un exemple de lien vulnérable ressemble à ceci: www.example.com/login.html?RelayState=http%3A%2F%2Fexample.com%2Fnext



Dans cet exemple, le paramĂštre "RelayState" spĂ©cifie oĂč rediriger l'utilisateur aprĂšs une connexion rĂ©ussie (dans notre exemple est example.com/next ). Si le site ne vĂ©rifie pas la valeur du paramĂštre "RelayState" pour la lĂ©gitimitĂ© et la sĂ©curitĂ©, alors l'attaquant peut utiliser ce paramĂštre pour rediriger la victime vers une fausse page crĂ©Ă©e par l'attaquant lui-mĂȘme: www.example.com/login.html?RelayState=http%3A%2F % 2FEvilWebsite.com



Les vulnérabilités telles que Open Redirect ont été négligées par les développeurs, car elles n'endommagent pas directement le site et ne permettent pas à un attaquant de voler directement les données de l'entreprise. Cependant, cela ne signifie pas que Open Redirect n'est pas une menace. L'une des principales utilisations de ce type d'attaque est de mener des attaques de phishing efficaces et fiables.



Lorsqu'une attaque par hameçonnage utilise Open Redirect, la victime peut recevoir un e-mail d'apparence plausible avec un lien qui pointe vers le domaine correct et familier de la victime. Ce que la victime peut ne pas remarquer, c'est qu'il y a des paramÚtres au milieu de l'URL qui modifient le point de terminaison de redirection. Pour compliquer la détection d'Open Redirect, une redirection peut se produire aprÚs que la victime a entré un nom d'utilisateur et un mot de passe sur un site authentique. Les attaquants ont découvert qu'un moyen efficace de tromper une victime est de la rediriger vers un faux site aprÚs avoir entré son nom d'utilisateur et son mot de passe sur le site réel. Le faux site ressemblera au site réel et demandera à la victime de ressaisir le mot de passe. Une fois que la victime l'a fait, le mot de passe sera écrit par l'attaquant,et la victime sera redirigée vers le site réel. Si tout est fait correctement, la victime pensera avoir fait une erreur avec le mot de passe la premiÚre fois et ne remarquera pas que son nom d'utilisateur et son mot de passe ont été volés.



Le phishing est utilisĂ© dans la plupart des hacks ciblĂ©s rĂ©ussis ainsi que rĂ©guliĂšrement dans les attaques opportunistes. Compte tenu de la frĂ©quence du phishing dans la vie quotidienne, les vulnĂ©rabilitĂ©s comme Open Redirect ne doivent pas non plus ĂȘtre Ă©cartĂ©es.



Il serait injuste de désigner un site ou une entreprise en particulier comme vulnérable à la redirection ouverte, car cette vulnérabilité est courante. Au lieu de cela, il serait utile de montrer le nombre de ces sites et leur facilité de recherche.



Faire une recherche sur le Web est l'un des meilleurs moyens de trouver Open Redirect sur votre propre site et ailleurs sur Internet en général.



Le moteur de recherche de Google vous offre la possibilitĂ© de rĂ©diger des requĂȘtes de recherche, y compris des requĂȘtes qui recherchent spĂ©cifiquement des URL de page.



Les opĂ©rateurs et caractĂšres spĂ©ciaux suivants permettront Ă  tout utilisateur de crĂ©er des requĂȘtes balisĂ©es qui peuvent aider Ă  dĂ©tecter la redirection ouverte:



  • allinurlEst l'opĂ©rateur qui demande Ă  Google de rechercher l'URL de tous les mots clĂ©s spĂ©cifiĂ©s. Par exemple: il allinurl:ReturnUrlrecherchera toutes les pages Web qui ont une partie ReturnUrl dans l'adresse.
  • site- un opĂ©rateur qui dit de ne renvoyer que les rĂ©sultats qui se trouvent sur un domaine ou un site Web spĂ©cifique. Exemple: site:example.comrecherche de pages Web par example.com.
  • "" - les guillemets doubles sont des caractĂšres spĂ©ciaux utilisĂ©s pour indiquer la recherche d'une combinaison exacte de mots et de caractĂšres entre guillemets.
  • * - un astĂ©risque est un caractĂšre gĂ©nĂ©rique qui reprĂ©sente un ou plusieurs mots.


Leur utilisation nous permet de trouver des signes d'un potentiel Open Redirect: nous pouvons simultanĂ©ment rechercher la prĂ©sence des jetons "http" et "https" dans les paramĂštres de la requĂȘte GET. Par exemple:



allinurl:%3Dhttps*
allinurl:%253Dhttps*
allinurl:%3Dhttp*
allinurl:%253Dhttp*


Nous pouvons Ă©galement rechercher des mots gĂ©nĂ©raux spĂ©cifiques liĂ©s Ă  la redirection dans la zone des paramĂštres de requĂȘte GET. Par exemple:



allinurl:"<keyword>=https"
allinurl:"<keyword>=http"
allinurl:<keyword>=https
allinurl:<keyword>=http
allinurl:<keyword>%3Dhttps
allinurl:<keyword>%3Dhttps*
allinurl:<keyword>%253Dhttps
allinurl:<keyword>%253Dhttps*
allinurl:<keyword>%3Dhttp
allinurl:<keyword>%3Dhttp*
allinurl:<keyword>%253Dhttp
allinurl:<keyword>%253Dhttp*
allinurl:<keyword>


Au lieu de cela <keyword>, nous utiliserons l'un des mots spĂ©cifiques Ă  la redirection suivants: RelayState, ReturnUrl, RedirectUri, Return, Return_url, Redirect, Redirect_uri, Redirect_url, RedirectUrl, Forward, Forward_url, SuccessUrl, Redir, Exit_url, Destination . Ce n'est pas une liste complĂšte de mots-clĂ©s. Vous pouvez en savoir plus en analysant les rĂ©sultats des requĂȘtes de recherche d'URL plus gĂ©nĂ©rales dans la section GET Request Parameters.



Pour les recherches ciblées, vous pouvez ajouter «site:<domain_name>»à la fin de vos recherches Google. Cette méthode peut vous aider à trouver les vulnérabilités Open Redirect sur votre propre site.



Avec une recherche aussi simple, vous pouvez trouver des dizaines de vulnĂ©rabilitĂ©s Open Redirect en quelques minutes. La liste des sites vulnĂ©rables comprend des sites de banques, de sociĂ©tĂ©s internationales, d'entreprises de confiance, de projets favoris et de nombreux sites de petites organisations. En prime, chaque fois qu'un robot d'exploration de Google tombe sur des sites d'Open Redirect, nous recevrons des rĂ©sultats mis Ă  jour Ă  l'aide de requĂȘtes.



Le meilleur moyen d'Ă©viter la vulnĂ©rabilitĂ© Open Redirect est d'Ă©viter la redirection de paramĂštres spĂ©cifiques Ă  l'utilisateur ou la requĂȘte GET. Si une redirection est inĂ©vitable, vous pouvez y faire face en validant le site cible et en effaçant sa rĂ©putation avec une liste blanche d'URL validĂ©es.



Je vous encourage Ă  parler Ă  vos amis dĂ©veloppeurs Web d'Open Redirect. Vous pouvez leur transmettre cet article ou mĂȘme dĂ©couvrir des vulnĂ©rabilitĂ©s en utilisant la mĂ©thode mentionnĂ©e ci-dessus et le signaler Ă  l'entreprise avec une description dĂ©taillĂ©e du problĂšme. Ensemble, rendons les attaques de phishing plus difficiles!



Si vous souhaitez partager vos recherches Google qui fonctionnent pour la détection Open Redirect, vous pouvez le faire dans les commentaires.






En savoir plus sur le cours







All Articles