
クロスドキュメントのpostMessage脆弱性を追跡、検査、悪用するためのブラウザ拡張機能。リプレイとクロスオリジンのエクスプロイトシミュレーション機能を備えています。
Posta は、クロスドキュメントメッセージング通信を調査するためのツールです。postMessage の脆弱性を追跡、探索、悪用することができ、アタッチされたブラウザ内のウィンドウ間で送信されるメッセージのリプレイなどの機能も含まれています。

Posta を開発環境で実行するには:
git clone https://github.com/benso-io/posta
cd posta
npm install
npm start
開発モードには、小さなテストサイトとエクスプロイトページを提供するローカルWebサーバーが含まれています。 開発モードで実行している場合、エクスプロイトページには http://localhost:8080/exploit/ でアクセスできます。
開発環境は、ソースコードの変更時に拡張機能を再ビルドします。UI を操作するには、開発環境を起動し、変更を加えてリフレッシュしてください。バックグラウンドページへの変更は再ビルドされますが、拡張機能を(ブラウザメニューから)再起動しないと反映されないことに注意してください。
Posta を Chrome / Chromium 拡張機能として実行するには:
git clone https://github.com/benso-io/posta.git
chrome://extensions に移動chrome-extension ディレクトリを選択し、ブラウザにアップロードタブセクションでは、メインのオリジンと、そのオリジンがホストしセッションを通じて通信するiframeを確認できます。 特定のフレームをクリックして選択すると、そのフレームに関連するpostMessageのみを表示できます。

メッセージセクションでは、オリジンからiframeへ、およびその逆方向に送信されるすべての postMessage トラフィックを検査できます。
特定の通信をクリックして選択し、詳細を確認できます。
リスナー領域には通信の処理を担当するコードが表示され、クリックして内容をコピーしJSコードを観察できます。

コンソールセクションでは、元の postMessage トラフィックを変更し、改ざんされた値(オリジンからiframeに送信される)でメッセージをリプレイできます。
テストを行い、postMessage の内容を変更することでウェブサイトの動作に影響を与えられるかどうかを確認します。もし影響を与えられたら、「エクスプロイトのシミュレート」をクリックして、異なるオリジンから悪用を試みる時です。

悪用ウィンドウに移動するには、「ホスト」ボタンをクリックします。
エクスプロイトセクションでは、Posta が指定されたオリジンをiframeとしてホストし、postMessage 通信を開始しようとします。多くの場合、元のウェブサイトでX-Frame-Optionsが有効になっているため、これはできません。
したがって、悪用を続行するには、window.open メソッドを実行してオリジンとの通信参照を取得する必要があります。これは 「タブとして開く」 をクリックすることで実現できます。
右側にはコンソールがあり、指定したペイロードを変更・作成し、「エクスプロイト」ボタンをクリックして開始されるクロスオリジン通信でテストするのに役立ちます。
