postMessage()

Description

Certains sites contournent SOP en utilisant postMessage(). Cette méthode est une API web qui utilise la syntaxe JavaScript. Vous pouvez l'utiliser pour envoyer des messages texte vers une autre fenêtre:

<fenêtre de réception>.postMessage(<message à envoyer>, <origin de la cible>);

La fenêtre de réception traitera alors le message en utilisant un gestionnaire d'événements qui sera déclenché lorsque la fenêtre de réception reçoit un message:

window.addEventListener("message",<event handler function>);

Étant donné que l'utilisation de postMessage() nécessite que l'expéditeur obtienne une référence au fenêtre du récepteur, les messages ne peuvent être envoyés qu'entre une fenêtre et ses iframes ou pop-up.

Détection

Un site pourrait utiliser postMessage() si vous inspectez la page (par exemple, en faisant un clic droit dessus dans Chrome et en choisissant Inspecter, puis en naviguant vers Event Listeners) et qu'en recherchent un Event listener vous trouvez un résultat comme celui-ci.

Exploitation

Extension

MessPostage

MessPostage est une extension permettant de remonter si les sites consultés utilisent l'API postMessage.

ressource: https://github.com/Sjord/messpostage

Outils

Posta

Posta est un outil permettant de rechercher les Cross-Document Messaging communications et d'exploiter les vulnérabilités liées à postMessage.

ressource: https://github.com/benso-io/posta

Dernière mise à jour