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