Cross Site Scripting
Le Cross Site Scripting (CSS) profite d'une faiblesse d'un serveur ou d'une application web pour attaquer les internautes.Pour mieu expliquer le principe de cette attaque, prenons un exemple:
Particularités d'une attaque Cross Site Scripting
- Cette attaque vise le visiteur et non le serveur web.
- Elle se sert des failles au niveau de la validation des paramètres en entrées.
- Le chiffrement, tel que le SSL, ne protège pas les visiteurs contre cette attaque.
- Il est très difficile de détécter ce type d'attaque et les paramètres de l'url attaquée sont, en général, camouflés en utilisant des codes hexadécimaux.
Risques et conséquences d'une attaque Cross Site Scripting
- Redirection vers un site malveillant, qui des fois possède le même design que le vrai site pour détourner l'attention du visiteur qui sans rien remarquer va fournir des informations personnelles au pirate.
- Récupération d'informations secrètes telles que les données échangées entre le visiteur et le webmaster, les sessions, des informations contenues dans les cookies.
- Execution des commandes systèmes.
- L'image de l'entreprise peut être gravement touchée par ce genre d'attaque.
Quelques cas d'applications Web vulnérables
Vol de session par webmail
Il lui suffit d'envoyer un e-mail à sa victime contenant des balises Html et un script JavaScript de la forme suivante:
sujet : du texte corps : du texte<\textarea>
<script>script qui récupère le cookie d'identification</script>
La victime utilise son login et mot de passe pour se connecter à sa boite mail en utilisant une connexion sécurisée par SSL. A sa connexion, le serveur lui envoie une cookie contenant ses identifiants pour qu'elle puisse garder sa session connéctée pour une durée de 20 minutes. Quand l'utilisateur lit le message du pirate il ne voie pas le script javascript se trouvant après la balise car il a été interprété par le navigateur. La victime sera ensuite redirigée vers un autre serveur accompagné de la session en paramètres puis sera redirigée à nouveau vers la page initiale. Il reste alors au pirate quelques minutes pour accéder à la boite mail de la victime, et le tour est joué!!
Cette méthode fonctionne chez Hotmail, Yahoo, ... La même technique marche dans les site utilisant le commerce électronique. Dans ce cas Les conséquence sont plus graves (vol des identités bancaires!).
Message d'Erreur
Lutter contre les attaques Cross Site Scripting
- Les parties de l'URL doivent être filtré afin de supprimer l'effet des balises Html. remplacer le < par <. Le < sera affiché sans être interpreté.
- Encoder l'URL, l'affichage ressemblera à http://www.site.com/index.php?page=%3c%53%43%52%49%50%54%3e%64...
- Pour l'affichage des données, remplacer au moment de la saisie les caractères spéciaux par leurs équivalents en Html.