![]() |
CERTA Centre d'Expertise Gouvernemental de |
![]() |
|
Affaire suivie par : CERTA Objet : Vulnérabilité de type
« Cross Site Scripting »
Gestion du document
Une gestion de version détaillée se trouve à la fin de ce document. 1 IntroductionUne vulnérabilité de type « Cross Site Scripting » est exploitable sur les serveurs WEB ou les applications WEB qui publient du texte fourni par les visiteurs sans l'avoir filtré. Un utilisateur mal intentionné peut, en utilisant cette vulnérabilité, insérer du code dans une page html renvoyée dynamiquement par le serveur. Ce code est écrit dans un langage de type « script » (par exemple le javascript ou le VBscript) qui est interprété par le navigateur de la victime.2 Historique et évolution du « Cross Site Scripting »Les vulnérabilités de type « Cross Site Scripting » sont apparues lors de la généralisation de l'usage des langages de script dans les pages WEB. Ces vulnérabilités ont fait l'objet d'un premier communiqué officiel en février 2000 par le CERT/CC (voir l'avis de sécurité CA-2000-02). Depuis, leur exploitation a connu une grande et large évolution. En effet, les risques visent toutes sortes de services (Webmail, enchères en ligne, forums...) et beaucoup d'applications ont été touchées par cette vulnérabilité dont les plus connues sont les serveurs web IIS et Apache, les serveurs d'applications IBM Websphere, Tomcat mais aussi le proxy squid, PhpNuke, ...3 Illustration du « Cross Site Scripting » à travers deux exemples.3.1 Utilisation de la génération automatique du message d'erreur d'un serveur WEBLorsqu'un serveur web génère un message d'erreur à partir de l'URL qu'il a reçue, sans avoir au préalable pris la précaution de l'analyser, il est alors vulnérable à cette faille. Prenons pour exemple le cas d'un serveur ayant pour nom de domaine www.moteur_de_recherche.com. Si ce serveur ne trouve pas la page demandée, il retourne une réponse du type : « Erreur 404 : Page xxx non trouvée » où xxx est le nom de la page qui a été demandée. Imaginons qu'un utilisateur mal intentionné crée une page html contenant le lien suivant : <a href="http://www.moteur_de_recherche.com/<script>alert('Ce serveur est vulnérable !');</script>''>Le meilleur moteur de recherche</a>. Etant donnée que le serveur n'analyse pas les pages qui lui sont demandées, il cherchera alors le fichier <script>alert('Ce serveur est vulnérable !');</script> qu'il ne trouvera pas et renverra donc une réponse contenant le script (inoffensif dans ce cas) qui aura pour effet d'afficher une fenetre avec le texte « Ce serveur est vulnérable ». Cette vulnérabilité était présente sur le serveur WEB Microsoft IIS version 4.0 et version 5.0 (voir avis de sécurité CERTA-2000-AVI-035 du CERTA) La même méthode peut être utilisée sur toute autre application WEB (php, cgi, ...) qui n'analyse pas les données en entrée. 3.2 Vol d'un cookie par envoi d'un mélUn serveur WEB est chargé d'afficher les méls au format html contenus dans la boîte aux lettres d'un utilisateur. L'authentification de l'utilisateur est réalisée au moyen de cookies d'identification envoyé par le serveur WEB. Si le serveur est vulnérable, un utilisateur mal intentionné peut, par le biais d'un mél astucieusement écrit, récupérer le cookie d'identification envoyé par le serveur WEB. Le mél envoyé par l'utilisateur mal intentionné est de la forme : sujet : du texte corps : du texte
<script>un script qui récupère le cookie d'identification</script> En lisant ce mél à travers les pages WEB
générées par le serveur. La victime n'a
pas connaissance du texte se trouvant après la balise
4 Les risques du « Cross Site Scripting »Les risques engendrés par cette vulnérabilité sont liés au langage de script utilisé pour réaliser l'attaque par « Cross Site Scripting ». Si, par exemple, le langage javascript est utilisé, il est alors possible :
Les risques liés à cette vulnérabilité sont donc nombreux : déni de service de la machine victime, utilisation de la machine victime à des fins malveillantes, récupération de données personnelles. 5 Solution pour éliminer les compromissions par « Cross Site Scripting »Etant donné qu'il s'agit d'une vulnérabilité qui se situe au niveau du serveur, il est impossible pour l'utilisateur de corriger cette vulnérabilité. Cependant il est recommandé, comme le précise la recommandation CERTA-2000-REC-001 de désactiver l'exécution des langages de scripts intéprétables par le navigateur et d'entreprendre un ensemble d'actions destiné à contourner cette vulnérabilité.En outre, cette vulnérabilité concerne toute les applications WEB dynamiques. Il est donc très important pour tous les administrateurs de sites WEB dynamiques d'analyser les données fournies à ces applications. 6 Documentation
Gestion détaillée du document
CERTA 2010-01-20 |
![]() |
||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||