XSS DOM avec Web Messages et JSON.parse
DOM XSS using web messages and JSON.parse
Ce document reformule et traduit en français les notes fournies sur le laboratoire (PortSwigger) : il décrit le code vulnérable, comment il interprète les messages, et la charge utile utilisée pour appeler print() via un iframe.
Description du script vulnérable
Le script crée dynamiquement une balise iframe et la contrôle à distance via des messages reçus par l'événement postMessage. Il peut charger une URL, ajuster la taille du lecteur et le faire défiler dans la page.

Exemple de message postMessage
postMessageEnvoyer un message JSON stringifié permet au script d'interpréter l'action demandée.
Charger une URL normale :

Utiliser un schéma javascript: pour exécuter du code (ici appeler print()) :

Sur le serveur d'exploitation, on peut déposer une page HTML contenant un iframe pointant vers la page vulnérable et poster le message load-channel avec url: "javascript:print()" lors du chargement de l'iframe.
Mis à jour
Ce contenu vous a-t-il été utile ?