XSS DOM via Web Messages et URL JavaScript
DOM XSS using web messages and a JavaScript URL
Laboratoire démontrant une vulnérabilité DOM provoquant une redirection/exécution via postMessage. L'objectif : construire une page HTML sur le serveur d'exploits qui envoie un message permettant d'exécuter print() dans la page cible.
La page cible écoute les messages postés et traite la donnée reçue comme une URL. Si la chaîne reçue contient http: ou https:, la page redirige (location.href) vers cette valeur. Le code côté cible est le suivant :
provoque bien une redirection sur https://jord4n.pro.

Contournement de la validation
La validation ne bloque que les chaînes ne contenant pas http: ou https: (vérification via indexOf). On abuse donc de la logique indexOf > -1 en ajoutant une portion //https://... après un schéma javascript: pour que la condition soit satisfaite tout en conservant un URL démarrant par javascript:. Par exemple :
Pour ouvrir une alerte :

Pour appeler
print():
La partie //https://google.com sert uniquement à satisfaire la condition indexOf('https:') > -1.

Exploit final
La page d'attaque peut inclure un iframe vers la page vulnérable et, au chargement, poster le message malveillant vers le contenu embarqué. Exemple d’implémentation à placer sur le serveur d'exploitation :

Mis à jour
Ce contenu vous a-t-il été utile ?