XSS réfléchi
L’ensemble de l’attaque s’inscrit dans un lien qui vous a été envoyé.
Qu'est-ce que XSS réfléchi?
Les scripts intersites réfléchis se cachent dans l'URL. Rien n'est implanté sur le serveur : un lien spécialement construit exécute le script de l'attaquant sur votre propre origine, dans la session connectée de la victime. Vous remplacerez le terme de recherche d’un magasin par une charge utile img onerror et regarderez les résultats l’exécuter. Ensuite, vous ouvrez le gestionnaire de recherche, recherchez la requête concaténée dans la réponse HTML, échappez-la à la limite de rendu et rejouez la même charge utile sous forme de texte inerte. Une liste de blocage recherchant les balises script ne voit jamais celle-ci.
Ce que vous apprendrez dans XSS réfléchi
- Distinguer le XSS réfléchi du XSS stocké : l'URL est le canal de diffusion et chaque victime doit ouvrir le lien spécialement conçu par l'attaquant.
- Repérez le point de réflexion dans un pipeline de réponse URL vers HTML en lisant le code du gestionnaire
- Appliquez l'échappement HTML à la limite de rendu comme défense principale, et non les listes de blocage WAF ou la désinfection des entrées.
- Comprendre pourquoi une charge utile img onerror s'exécute même sans balise de script et pourquoi les listes de blocage ciblant les balises de script échouent
- Reconnaître que l'envoi du correctif neutralise l'exécution, pas la livraison : le lien de phishing existe toujours
XSS réfléchi — Étapes de la formation
-
Trouver la recherche de magasin
Aujourd'hui, Bob cible Vellora , une place de marché en ligne avec une large base de clients connectés. Il ouvre la recherche du magasin public pour voir comment il se comporte. Un champ de recherche qui renvoie votre requête dans la page est la première chose qu'un attaquant sonde.
-
Exécutez une recherche normale
Tout d’abord, voyez comment la fonctionnalité se comporte pour un vrai acheteur. Exécutez une recherche de produit ordinaire. Le magasin renvoie les éléments correspondants et le terme saisi par Bob est répété dans l'en-tête des résultats.
-
La requête est reflétée
Le terme exact recherché par Bob revient directement dans l'en-tête des résultats, et la barre d'adresse le porte désormais comme paramètre q . Cette réflexion n'est dangereuse que si la page ne parvient pas à échapper à la valeur en sortant. La seule façon de le savoir est de lui donner un caractère que le navigateur considère comme un balisage.
-
Testez s'il s'échappe
Bob sonde la réflexion avec un test classique : une balise d'image avec une source cassée et un gestionnaire onerror qui fait apparaître un alert(1) inoffensif. Si la page échappe à la requête, cela apparaît sous forme de texte brut dans le titre. Si ce n'est pas le cas, le navigateur crée une véritable balise et l'alerte se déclenche.
-
C'est exploitable
L'alerte s'est déclenchée. La page n'échappe pas à la requête, elle exécute donc le balisage que comporte l'URL. Ce alert(1) inoffensif n’était que la confirmation. Une véritable charge utile n'ouvre pas de boîte de dialogue, elle s'exécute silencieusement et vole le cookie de session du visiteur.
-
Armement et phishing
Bob échange l'alerte contre un voleur de cookies qui signale la session sur son propre serveur, l'enveloppe dans un lien de recherche Vellora afin qu'elle s'exécute sur le domaine du magasin de confiance et la cache derrière une récompense amicale. Puis il l'envoie par courrier à une véritable employée dont la session vaut la peine d'être volée : Alice. Les gens font confiance aux liens vers le magasin de leur propre entreprise.
-
Une récompense sortie de nulle part
Un e-mail de récompense arrive dans votre boîte de réception. On dirait qu'il vient de Vellora et le bouton pointe vers le magasin que vous utilisez quotidiennement. Rien de mal évidemment.
-
Réclamez la récompense
Le lien ouvre le propre magasin de Vellora, donc on se sent en sécurité. Cliquez pour réclamer la récompense.
-
Ce que le lien a réellement couru
La page n'est qu'une recherche de Vellora, affichant une image brisée à l'endroit où devrait se trouver l'en-tête des résultats. Mais le paramètre q du lien contenait un script. Il s'est exécuté à l'instant où la page s'est affichée, a lu votre cookie de session et l'a signalé à l'attaquant. Il n'y avait pas de pop-up. L'image brisée est la seule trace.
-
Votre session est détournée
Quelques minutes plus tard, les opérations de sécurité le signalent. Le lien que vous avez ouvert a retourné votre propre vitrine contre vous, et maintenant quelqu'un d'autre organise votre session. La page piratée est toujours ouverte à côté de l'alerte. Vous possédez ce code. Lisez l'alerte, puis corrigez la cause première.
Couverture des référentiels de sécurité
OWASP Top 10
- A05:2025 Injection
- A03:2021 Injection
CWE
- CWE-79 Improper Neutralization of Input During Web Page Generation
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security