XSS réfléchi dans le HTML avec balises bloquées

Reflected XSS into HTML context with most tags and attributes blocked

Ce lab contient une vulnérabilité XSS réfléchie dans la fonctionnalité de recherche, mais un pare-feu applicatif (WAF) bloque les vecteurs XSS les plus courants. Pour résoudre le lab, il faut contourner le WAF et déclencher la fonction print().

  • En essayant des payloads classiques comme <h1>test</h1>, <img ou <script la réponse est : « Tag is not allowed ».

  • J’ai intercepté la page avec Burp Suite et lancé un envoi via Intruder.

J’ai copié dans la cheat-sheet de portswigger les types d’attributs événementiels (event handlers) et testé plusieurs d’entre eux.

  • J’obtiens une réponse HTTP 200 pour le paramètre search (pas d’erreur renvoyée dans le body).

  • J’ai filtré/essayé plusieurs attributs d’événements et je me suis focalisé sur onresize.

Payload testé et exploitation :

  • Injection directe : <body onresize=alert(0)> — en redimensionnant (zoom molette) l’alerte apparaît.

Objectif final : appeler print() au lieu de alert() :

URL exploit envoyée à la victime :

Livraison via iframe et déclenchement automatique :

  • Pour forcer l’événement onresize au chargement dans l’iframe, on modifie la largeur de l’iframe depuis son attribut onload :

et version avec ajustement width au chargement :

Résumé : contournement du WAF en injectant un attribut d’événement autorisé (onresize) qui appelle print(), puis livraison via iframe avec onload qui change la taille pour déclencher onresize.

Mis à jour

Ce contenu vous a-t-il été utile ?