
Browsererweiterung zum Verfolgen, Inspizieren und Ausnutzen von Cross-Document-PostMessage-Schwachstellen mit Replay- und Cross-Origin-Exploit-Simulationsfähigkeiten.
Posta ist ein Werkzeug zur Erforschung von Cross-Dokument-Messaging-Kommunikation. Es ermöglicht Ihnen, postMessage-Schwachstellen zu verfolgen, zu untersuchen und auszunutzen, und beinhaltet Funktionen wie das Wiederholen von Nachrichten, die zwischen Fenstern in jedem angeschlossenen Browser gesendet werden.

Führen Sie Posta in der Entwicklungsumgebung aus:
git clone https://github.com/benso-io/posta
cd posta
npm install
npm start
Der Entwicklungsmodus enthält einen lokalen Webserver, der eine kleine Testseite und die Exploit-Seite bereitstellt. Wenn Sie im Entwicklungsmodus arbeiten, können Sie die Exploit-Seite unter http://localhost:8080/exploit/ aufrufen.
Die Entwicklungsumgebung wird die Erweiterung neu erstellen, wenn sich der Quellcode ändert. Um an der Benutzeroberfläche zu arbeiten, starten Sie die Entwicklungsumgebung, nehmen Sie Ihre Änderungen vor und aktualisieren Sie die Seite. Bitte beachten Sie, dass Änderungen an der Hintergrundseite neu erstellt werden, aber erst nach einem Neustart der Erweiterung (über das Browsermenü) wirksam werden.
Führen Sie Posta als Chrome- / Chromium-Erweiterung aus:
git clone https://github.com/benso-io/posta.git
chrome://extensionschrome-extension innerhalb von Posta aus und laden Sie es in Ihren Browser hoch.Im Bereich Tabs finden wir unseren Haupt-Ursprung (Origin) mit den IFrames, die er hostet und mit denen er während der Sitzung kommuniziert. Wir können den spezifischen Frame durch Klicken auswählen und die nur auf diesen Frame bezogenen postMessages beobachten.

Im Bereich Nachrichten können wir den gesamten postMessage-Verkehr inspizieren, der vom Ursprung zu seinen IFrames und umgekehrt gesendet wird.
Wir können eine bestimmte Kommunikation zur weiteren Untersuchung auswählen, indem wir darauf klicken.
Der Bereich Listener zeigt den Code, der für die Verarbeitung der Kommunikation zuständig ist. Wir können darauf klicken und seinen Inhalt zur Untersuchung des JS-Codes kopieren.

Im Konsolenbereich können wir den ursprünglichen postMessage-Verkehr modifizieren und die Nachrichten mit den manipulierten Werten erneut senden, die vom Ursprung zu seinem IFrame gesendet werden.
Wir sollten Tests durchführen und sehen, ob wir das Verhalten der Website durch Änderung des postMessage-Inhalts beeinflussen können. Wenn uns das gelingt, ist es an der Zeit, zu versuchen, sie von einem anderen Ursprung aus auszunutzen, indem wir auf "Exploit simulieren" klicken.

Klicken Sie auf die Schaltfläche "Host", um zum Exploit-Fenster zu navigieren.
Im Bereich Exploit versucht Posta, den angegebenen Ursprung als IFrame zu hosten, um eine postMessage-Kommunikation zu initiieren. Meistens wird dies nicht möglich sein, da auf der Ursprungs-Website X-Frame-Options aktiviert ist.
Daher benötigen wir, um mit unserer Ausnutzung fortzufahren, eine Kommunikationsreferenz zu unserem Ursprung durch Aufruf der Methode window.open, was durch Klicken auf "Als Tab öffnen" erreicht werden kann.
Wir haben die Konsole auf der rechten Seite, die uns hilft, unsere spezifizierten Payloads zu modifizieren und zu erstellen und sie in der Cross-Origin-Kommunikation zu testen, initiiert durch Klicken auf die Schaltfläche Exploit.
