Les Redirections et renvois non validés Par: simon villiard
Introduction La redirection Utiliser couramment Important de sécuriser Se fait à l’externe Ne s’attaque pas directement à votre application web
Présentation du problème Lorsque qu’une application web effectue un changement de page en fonction d’un paramètre et accepte ces derniers sans les validés d’abord, ce qui cause la redirection de certaines requêtes vers des sites malicieux.
Environnements affectés Toutes applications web qui: Utilise la redirection Contient des utilisateurs (Inclus aussi les pertes de mots de passes)
Raisons principales Attaques par hameçonnage (phishing). Téléchargement de virus et malware.
Exemples de cas Sur un forum, un utilisateur affirme qu’il a été capable d’accéder à un nouveau jeux avant qu’il sorte sur Vapor™ alors il écrit: Aller télécharger HugoWorld™ j’ai trouver un moyen de le télécharger à l’avance: http://www.vapor.com/redirect.jsp?url=evil.com/download/hgwrld.exe Url habituel Url malicieux Quelqu’un vous envoi un e-mail comme quoi que votre compte a été hacker et que vous devez réinitialiser votre mot de passe: Votre compte n’est plus sûr. Réinitialiser votre mot de passe ici: https://accesd.desjardins.com/redirect.jsp?url=phishingsite.com
Problème Les redirections se font à partir de l’url qui a été entrer. string url = request.QueryString["url"]; Response.Redirect(url);
Bonnes pratiques Entrer l’url explicitement dans le code Response.Redirect("~/folder/Login.aspx")
Solutions et préventions Rediriger seulement vers des pages locales Éviter la redirection et le renvoi Valider l’url avant de rediriger (s’assurer que le lien est légitime) Créer un fichier de liste d’URL de confiance (Apache: « .htaccess ») Forcer les redirection à passer par une page notifiant l’utilisateur qu’il quitte votre site <IfModule mod_alias.c> #redirection automatique d’une page vers une nouvelle adresse Redirect permanent /dossier01/script_1.html http://nouvelle.adresse.fr/dossier03/script_1.php #redirection automatique d’un ensemble de pages RedirectMatch permanent /dossier01/(.*)\.html$ http://nouvelle.adresse.fr/dossier02/$1.php #redirection automatique d’un dossier vers une nouvelle adresse Redirect permanent /dossier01 http://nouvelle.adresse.fr/dossier02 #redirection automatique de toute l’application Web une nouvelle adresse Redirect permanent / http://nouvelle.adresse.fr/ </IfModule>
Conclusion Questions? Commentaires?
Bibliographie Articles: Vidéos: https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forward s_Cheat_Sheet http://coupdeklaxon.ca/wp- content/uploads/2012/12/failles_de_securite_v1-3.pdf http://coupdeklaxon.ca/wp-content/uploads/2012/12/OWASP-Top-10- 2013-French-1.pdf Vidéos: http://www.youtube.com/watch?v=kl_TMG2kiEI