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