XSS réfléchi avec seulement des balises personnalisées
Reflected XSS into HTML context with all tags blocked except custom ones
Cette application bloque toutes les balises HTML « classiques » ; seules les balises personnalisées (custom elements) sont autorisées. L'objectif du lab : injecter une balise personnalisée qui exécute automatiquement alert(document.cookie) (ici on veut voler la cookie de session via l'alerte).
Observations et démarche (réformulées)
Comme toutes les balises standards sont filtrées, la technique consiste à définir/insérer une balise personnalisée que le navigateur acceptera.
Une balise personnalisée peut contenir des gestionnaires d'événements — mais certains événements ne se déclenchent que si l'élément peut recevoir le focus.
Les éléments personnalisés ne sont focalisables par défaut ; il faut donc forcer la focalisation en ajoutant
tabindex=1pour que l'événement lié s'exécute lorsqu'on interagit (par ex. en cliquant ou en tabulant).

Balise simple — non focalisable (n'exécute pas l'alerte) :
Même balise, rendue focalisable avec
tabindex— leonfocusfonctionne :

Preuve de concept final (exfiltration via redirection)
On construit une URL qui injecte la balise personnalisée avec un
onfocusappelantalert(document.cookie)et on force le focus partabindex=1.Exemple de payload à envoyer à la victime (injection URL-encodée dans le paramètre
search) :
Mis à jour
Ce contenu vous a-t-il été utile ?