Marianne ANSSI

CERTA

Centre d'Expertise Gouvernemental de
Réponse et de Traitement des Attaques informatiques

liseret droit
Contact

Contacter le CERTA

A propos du site

 

Recherche

Rechercher sur le site

 

Les documents du CERTA

Page d'accueil

Les alertes en cours

Les bulletins d'actualité

Les notes d'information

Année en cours

 

Les Flux RSS du CERTA

Flux RSS complet

RSS

Flux RSS des alertes

RSS

 

Informations utiles

Que faire en cas d'intrusion ?

Les mémentos du CERTA

Les systèmes obsolètes

 

CERTA-2002-INF-001

Imprimer ce document

Version PDF

A propos du CERTA

L'ANSSI

Le CERTA

Les CERTs

Le FIRST

L'EGC

Liens utiles

 
Archives du CERTA

Année 2010

Année 2009

Année 2008

Année 2007

Année 2006

Année 2005

Année 2004

Année 2003

Année 2002

Année 2001

Année 2000

 


S . G . D . S . N
Agence nationale
de la sécurité des
systèmes d'information

République Française Paris, le 22 mars 2002
No CERTA-2002-INF-001

Affaire suivie par :

CERTA

NOTE D'INFORMATION DU CERTA

Objet : Vulnérabilité de type « Cross Site Scripting »


Conditions d'utilisation de ce document : http://www.certa.ssi.gouv.fr/certa/apropos.html
Dernière version de ce document : http://www.certa.ssi.gouv.fr/site/CERTA-2002-INF-001

Gestion du document


Tableau 1: gestion du document
Référence CERTA-2002-INF-001
Titre Vulnérabilité de type « Cross Site Scripting »
Date de la première version 22 mars 2002
Date de la dernière version -
Source(s)  
Pièce(s) jointe(s) Aucune

Une gestion de version détaillée se trouve à la fin de ce document.

1 Introduction

Une 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 WEB

Lorsqu'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él

Un 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

<\textarea>

<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 <\textarea> qui est alors considéré comme du code html. L'emploi de la balise <script> permet alors l'exécution d'un code qui sera interprété par le navigateur.

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 :
  • de modifier ou d'ajouter des clefs à la base de registre de la machine victime ;
  • d'afficher une fenêtre demandant à l'utilisateur de rentrer son login et son mot de passe puis de valider, après quoi le résultat sera alors envoyé par mél à l'attaquant ;
  • de récupérer les cookies de la machine victime ;
  • d'exécuter des commandes systèmes, ...

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

22 mars 2002
version initiale.



CERTA
2010-01-20

liserest gauche
Premier Ministre / Secrétariat Général de la Défense et de la Sécurité Nationale / Agence nationale de la sécurité des systèmes d'information webmestre Dernière mise à jour : le 12/03/2010