Command Palette

Search for a command to run...

Glossaire XSS (Cross-Site Scripting)

Qu’est-ce que le XSS (Cross-Site Scripting) ?

Le Cross-Site Scripting, ou XSS, est une faille de sécurité dans les sites web qui permet aux attaquants d’ajouter des scripts nuisibles aux pages web. La plupart du temps, ces scripts sont écrits en JavaScript.

Si quelqu’un visite une page affectée par le XSS, son navigateur exécute le script de l’attaquant. Cela peut entraîner le vol de cookies, le détournement de sessions ou des actions effectuées sans la permission de l’utilisateur.

Le XSS, comme l’injection SQL, est régulièrement répertorié dans le Top 10 de l’OWASP comme l’une des vulnérabilités les plus courantes des applications web.

plexicus-xss-attack-ilustration

Comment fonctionne le XSS ?

Le XSS cible souvent les applications web qui ne vérifient pas et ne nettoient pas correctement les entrées utilisateur.

Par exemple, si une boîte de commentaire permet du HTML brut ou du JavaScript sans aucun filtrage, un attaquant pourrait ajouter du code comme celui-ci :

<script>alert('Piraté !');</script>

Lorsque les victimes consultent la page, le code malveillant s’exécute dans leur navigateur.

Pourquoi le XSS est important en cybersécurité

Le XSS peut conduire à une violation plus importante :

  • Prise de contrôle de compte (vol de cookies de session pour usurper l’identité des utilisateurs)
  • Vol de données (capture des entrées de formulaire comme les mots de passe ou les cartes de crédit)
  • Attaques de phishing (injection de faux formulaires de connexion)
  • Livraison de logiciels malveillants (redirection des utilisateurs vers des sites web malveillants)

Types de XSS

  1. XSS basé sur le DOM
  2. L’attaque se produit entièrement dans le navigateur en manipulant le Document Object Model (DOM) sans impliquer le serveur.
  3. XSS stocké
  4. Le script malveillant est stocké de manière permanente sur le serveur, comme dans la base de données ou la page de profil.
  5. XSS réfléchi
  6. Le script est réfléchi par un serveur web (par exemple, dans l’URL ou le message d’erreur), le script sera exécuté lorsque la victime clique sur le lien conçu par les attaquants.

Comment prévenir le XSS

  • Assainissement des entrées et encodage des sorties : toujours nettoyer les données d’entrée des utilisateurs avant de les traiter, transformer les entrées des utilisateurs en un format sûr
  • Utiliser une politique de sécurité de contenu (CSP) : restreint les scripts pouvant être exécutés dans le navigateur.
  • Éviter eval() et JavaScript en ligne : pour réduire les risques d’injection.
  • Tests de sécurité (DAST/IAST) : effectuer des tests de sécurité pour détecter les vulnérabilités tôt

Exemple dans un cas réel - Ver Samy (MySpace, 2005)

Ce qui s’est passé : Samy Kamkar a publié un profil MySpace contenant une charge utile XSS stockée. Lorsque d’autres utilisateurs ont consulté le profil, la charge utile s’est exécutée dans leurs navigateurs, (a) ajoutant Samy comme ami, (b) ajoutant la phrase « Samy est mon héros » à leurs profils, et (c) se répliquant sur les pages de profil de ces utilisateurs.

Impact : Le ver s’est auto-propagé à ~1 million d’utilisateurs en ~20 heures, forçant MySpace à être temporairement hors ligne.

Pourquoi cela a fonctionné : MySpace permettait du HTML/attributs non échappés dans les champs de profil, permettant l’exécution de scripts stockés dans les navigateurs des visiteurs.

Leçons / correction : Encodage de sortie approprié, assainissement des entrées, suppression du HTML dans les champs de profil, et correction rapide. Samy a ensuite fait face à des conséquences légales, et MySpace a déployé des filtres.

Termes connexes

Prochaines étapes

Prêt à sécuriser vos applications ? Choisissez votre voie à suivre.

Rejoignez plus de 500 entreprises qui sécurisent déjà leurs applications avec Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready