Les principales failles de sécurité des applications web actuelles, telles que recensées par l'OWASP: principes, parades et bonnes pratiques de développement( Télécharger le fichier original )par Guillaume HARRY Conservatoire national des arts et métiers - Ingénieur 2012 |
4.10 Redirection et renvois non validés4.10.1 PrincipeLes redirections d'adresse sont utilisées dans les applications Web pour effectuer un changement de page en fonction d'un paramètre. L'utilisation de la redirection est particulièrement utilisée pour les attaques par hameçonnage (ou phishing). En cliquant sur un lien utilisant une page de redirection, l'utilisateur est automatiquement emmené vers une autre page. Cette redirection peut être utilisée dans le cadre d'une attaque CSRF (voir paragraphe 3.5). 4.10.2 Exemples d'attaqueLe script suivant est un exemple de page de redirection en utilisant la redirection par code HTML. <?php$nouvelleAdresse='http://nouvelle.adresse.fr/index.php'; if (isset($_GET['adresse'])) { $nouvelleAdresse=$_GET['adresse'];}echo '<!DOCTYPE html>'."\n", '<html xmlns="http://www.w3.org/1999/xhtml">'."\n", '<head>'."\n", '<meta charset="UTF-8" />'."\n", //Redirection HTML : '<meta http-equiv="refresh" content="0; url='.$nouvelleAdresse.'" />'."\n", '<title>Redirection</title>'."\n", '<meta name="robots" content="noindex,follow" />'."\n", '</head>'."\n", "\n", '<body>'."\n", //au cas où la redirection ne fonctionne pas : '<p><a href="'.$nouvelleAdresse.'">Redirection</a></p>'."\n", '</body>'."\n", '</html>'."\n";?> Figure 23 - Script PHP de redirection automatique Si un attaquant a connaissance d'une page de redirection vulnérables, il peut l'utiliser dans un lien pour faire rediriger l'utilisateur vers une page Web. <a href="http://www.application-securisee.com/redirect.php?www.attaquant.com/attaque.php" rel="nofollow">http://www.application-securisee.com</a> Figure 24 - Lien pour rediriger l'utilisateur vers une page malveillante Dans ce cas l'utilisateur est leurré. Le lien pointe bien vers l'application, mais va le rediriger vers une page malveillante. 4.10.3 Parade et bonnes pratiquesLa redirection ne doit renvoyer qu'à des pages locales. Dans ce cas les caractères spéciaux doivent être prohibés. En cas de changement d'adresse ou de déplacement d'une page, il vaut mieux utiliser la redirection paramétrée dans le serveur http. Par exemple avec Apache il est possible de placer un fichier « .htaccess » pour paramétrer les redirections automatiques. <IfModule mod_alias.c>#redirection automatique d'une page vers une nouvelle adresseRedirect permanent /dossier01/script_1.html http://nouvelle.adresse.fr/dossier03/script_1.php#redirection automatique d'un ensemble de pagesRedirectMatch permanent /dossier01/(.*)\.html$ http://nouvelle.adresse.fr/dossier02/$1.php#redirection automatique d'un dossier vers une nouvelle adresseRedirect permanent /dossier01 http://nouvelle.adresse.fr/dossier02#redirection automatique de toute l'application Web une nouvelle adresseRedirect permanent / http://nouvelle.adresse.fr/</IfModule> Figure 25 - Exemple de redirection automatique configurée au niveau du serveur http |
|