
Estensione del browser per tracciare, ispezionare e sfruttare le vulnerabilità postMessage cross-document, con funzionalità di replay e simulazione di exploit cross-origin.
Posta è uno strumento per la ricerca della comunicazione Cross-document Messaging. Ti permette di tracciare, esplorare e sfruttare le vulnerabilità di postMessage e include funzionalità come il replay dei messaggi inviati tra finestre all'interno di qualsiasi browser collegato.

Esegui Posta in ambiente di sviluppo:
git clone https://github.com/benso-io/posta
cd posta
npm install
npm start
La modalità di sviluppo include un server web locale che serve un piccolo sito di test e la pagina di exploit. Quando esegui in modalità sviluppo, puoi accedere alla pagina di exploit all'indirizzo http://localhost:8080/exploit/
L'ambiente di sviluppo ricostruirà l'estensione quando il codice sorgente cambia. Per lavorare sull'interfaccia utente, avvia l'ambiente di sviluppo, apporta le modifiche e aggiorna. Tieni presente che le modifiche alla pagina di background vengono ricostruite, ma avranno effetto solo dopo il riavvio dell'estensione (dal menu del browser).
Esegui Posta come estensione Chrome / Chromium:
git clone https://github.com/benso-io/posta.git
chrome://extensionschrome-extension all'interno di Posta e caricala nel tuo browserNella sezione Schede possiamo trovare la nostra Origine principale, con gli iframe che ospita e con cui comunica durante la sessione. Possiamo scegliere il frame specifico cliccandoci sopra e osservare i postMessage relativi solo a quel frame.

Nella sezione Messaggi, possiamo ispezionare tutto il traffico postMessage inviato dall'origine ai suoi iframe e viceversa.
Possiamo selezionare una comunicazione specifica per un esame più approfondito cliccandoci sopra.
L'area Ascoltatori presenta il codice responsabile della gestione della comunicazione, possiamo cliccare e copiare il suo contenuto per osservare il codice JS.

Nella sezione console, possiamo modificare il traffico postMessage originale e riprodurre i messaggi con i valori alterati che verranno inviati dall'Origine al suo iframe.
Dovremmo fare test e vedere se possiamo influenzare il comportamento del sito web modificando il contenuto di postMessage. Se riusciamo a farlo, è il momento di provare a sfruttarlo da un'Origine diversa, cliccando su "Simula exploit".

Clicca sul pulsante "host" per navigare alla finestra di sfruttamento.
Nella sezione Exploit, Posta proverà a ospitare l'origine specificata come iframe per avviare la comunicazione postMessage. La maggior parte delle volte non saremo in grado di farlo, a causa delle X-Frame-Options abilitate sul sito web di origine.
Pertanto, per continuare con il nostro sfruttamento, dovremo ottenere un riferimento di comunicazione con la nostra Origine avviando il metodo window.open, che può essere ottenuto cliccando su "Apri come scheda".
Abbiamo la console alla nostra destra che ci aiuterà a modificare e creare i nostri payload specificati e testarli in comunicazione Cross-Origin, avviata cliccando sul pulsante Exploit.
