
Extensão de navegador para rastrear, inspecionar e explorar vulnerabilidades de postMessage entre documentos, com capacidades de repetição e simulação de exploração entre origens.
Posta é uma ferramenta para pesquisar comunicação Cross-document Messaging. Permite rastrear, investigar e explorar vulnerabilidades postMessage, e inclui funcionalidades como repetir mensagens enviadas entre janelas em qualquer navegador ligado.

Executar o Posta em ambiente de desenvolvimento:
git clone https://github.com/benso-io/posta
cd posta
npm install
npm start
O modo de desenvolvimento inclui um servidor web local que serve um pequeno site de teste e a página de exploração. Quando executado em modo de desenvolvimento, pode acessar a página de exploração em http://localhost:8080/exploit/
O ambiente de desenvolvimento irá reconstruir a extensão quando o código-fonte mudar. Para trabalhar na interface do utilizador, inicie o ambiente de desenvolvimento, faça as suas alterações e atualize. Por favor, note que as alterações à página de fundo são reconstruídas, mas só terão efeito após a extensão ser reiniciada (a partir do menu do navegador).
Executar o Posta como uma extensão do Chrome / Chromium:
git clone https://github.com/benso-io/posta.git
chrome://extensionschrome-extension dentro do Posta e carregue-o no seu navegadorNa secção Separadores podemos encontrar a nossa Origem principal, com os iframes que ela hospeda e com os quais comunica durante a sessão. Podemos escolher o quadro específico clicando nele, e observar as postMessages relacionadas apenas com esse quadro.

Na secção Mensagens, podemos inspecionar todo o tráfego postMessage a ser enviado da origem para os seus iframes, e vice-versa.
Podemos selecionar comunicação específica para exame adicional clicando nela.
A área Listeners apresenta o código responsável por lidar com a comunicação, podemos clicar e copiar o seu conteúdo para observação do código JS.

Na secção da consola, podemos modificar o tráfego postMessage original, e repetir as mensagens com os valores adulterados que serão enviados da Origem para o seu iframe.
Devemos fazer testes e ver se podemos afetar o comportamento do site alterando o conteúdo postMessage. Se conseguirmos, é hora de tentar explorá-lo a partir de uma Origem diferente, clicando em "Simular exploração".

Clique no botão "host" para navegar para a janela de exploração.
Na secção Exploração, o Posta tentará hospedar a origem especificada como um iframe para iniciar a comunicação postMessage. Na maioria das vezes não conseguiremos fazê-lo, devido ao X-Frame-Options estar ativado no site de origem.
Portanto, para continuar com a nossa exploração, precisaremos obter referência de comunicação com a nossa Origem iniciando o método window.open, o que pode ser conseguido clicando em "Abrir como separador".
Temos a consola à nossa direita que nos ajudará a modificar e criar os nossos payloads especificados e testá-los em Comunicação Cross-Origin, iniciada clicando no botão Explorar.
