Bacho's Design

The Online Maths School
🇺🇸 🇫🇷


Attaque sur un site web: Cross Site Scripting XSS

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:
http://www.sitevulnerable.com
Le pirate va tester d'abord si le site est vulnérable à ce genre d'attaques, il va alors demander l'affichage d'une page qui n'existe pas pour étudier son resultat:
http://www.sitevulnerable.com/<b>gras.html</b>
Si le site site renvoie la réponse suivante:
Erreur: La page gras.html est introuvable
C'est que le site est bel et bien vulnérable à l'attaque CSS parcequ'il a renvoyé une page contenant le nom du fichier inexistant, mais le plus grave c'est qu'il a traité des balises Html; le nom du fichier s'est affiché en gras comme le pirate l'a voulu!! Supposons maintenant que le pirate crée une page contenant le un script de la manière suivante:
<a href="http://www.site.com/<script>alert('Ce serveur est vulnérable !');</script>"> Lien </a>
Dans ce cas c'est encore une fois gentil, mais avec un script un peu différent les conséquences seront bien plus graves.

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
L'authentification d'un utilisateur se fait via des cookies d'identification envoyés par le serveur web. Un pirate astucieu peut facilement récupérer le cookie d'identification envoyé par le serveur web vulnérable.
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
    Admettons que par un manière ou une autre un pirate a réussi à modifier le code erreur de la page du formulaire du site vunlérable qui renvoie une page d'erreur 404 affichant le message "Erreur 404: la page "/code" n'existe pas" au cas d'une erreur d'entrée. Un visiteur se connecte à ce site et se met à remplir le formulaire de contact pour contacter son ami le webmaster du site. Par manque d'attention il valide le formulaire après avoir fait une erreur de saisie. La page contenant l'erreur affiché contient un script exécutable qui aura pour mission de redirigé le visiteur vers une autre page pour afin récupérer les saisie fournies au formulaire. Et puis, elle le renvoie vers la page initiale.

  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 &lt;. 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.

Retour au début de la page.

Copyright ©2009 Bacho's Design by Bachir Jean EL HAGE

Laissez votre commentaire
Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool in /home/bachosdesign/public_html/files/_setup/pages/security_article.php:142 Stack trace: #0 /home/bachosdesign/public_html/files/_setup/pages/xss.php(82): include() #1 /home/bachosdesign/public_html/index.php(105): include('/home/bachosdes...') #2 {main} thrown in /home/bachosdesign/public_html/files/_setup/pages/security_article.php on line 142