
브라우저 확장 프로그램으로, 교차 문서 postMessage 취약점을 추적, 검사 및 악용할 수 있으며, 재생(replay) 및 교차 출처(cross-origin) 익스플로잇 시뮬레이션 기능을 제공합니다.
Posta는 크로스 문서 메시징 통신을 조사하기 위한 도구입니다. postMessage 취약점을 추적, 탐색 및 악용할 수 있으며, 연결된 브라우저 내에서 창 간에 전송된 메시지를 재생하는 기능을 포함합니다.

개발 환경에서 Posta 실행:
git clone https://github.com/benso-io/posta
cd posta
npm install
npm start
개발 모드에는 작은 테스트 사이트와 익스플로잇 페이지를 제공하는 로컬 웹 서버가 포함됩니다. 개발 모드에서 실행 시 http://localhost:8080/exploit/ 에서 익스플로잇 페이지에 접근할 수 있습니다.
개발 환경은 소스 코드가 변경되면 확장 프로그램을 다시 빌드합니다. UI 작업을 하려면 개발 환경을 시작하고 변경한 후 새로고침하세요. 배경 페이지에 대한 변경 사항은 다시 빌드되지만, 확장 프로그램이 (브라우저 메뉴에서) 다시 시작된 후에만 적용됩니다.
Chrome / Chromium 확장 프로그램으로 Posta 실행:
git clone https://github.com/benso-io/posta.git
chrome://extensions로 이동chrome-extension 디렉토리를 선택하여 브라우저에 업로드탭 섹션에서는 메인 Origin과 세션을 통해 호스트하고 통신하는 iframe을 찾을 수 있습니다. 특정 프레임을 클릭하여 선택하고, 해당 프레임과 관련된 postMessages만 관찰할 수 있습니다.

메시지 섹션에서는 Origin에서 iframe으로, 그 반대로 전송되는 모든 postMessage 트래픽을 검사할 수 있습니다.
특정 통신을 클릭하여 자세히 살펴볼 수 있습니다.
리스너 영역은 통신을 처리하는 코드를 보여주며, 클릭하여 내용을 복사한 후 JS 코드를 관찰할 수 있습니다.

콘솔 섹션에서는 원래의 postMessage 트래픽을 수정하고, 변조된 값으로 메시지를 재생하여 Origin에서 iframe으로 전송할 수 있습니다.
postMessage 내용을 변경하여 웹사이트의 동작에 영향을 줄 수 있는지 테스트해야 합니다. 그럴 수 있다면, "익스플로잇 시뮬레이션"을 클릭하여 다른 Origin에서 익스플로잇을 시도할 때입니다.

익스플로잇 창으로 이동하려면 "호스트" 버튼을 클릭하세요.
익스플로잇 섹션에서 Posta는 postMessage 통신을 시작하기 위해 지정된 Origin을 iframe으로 호스팅하려고 시도합니다. 대부분의 경우 Origin 웹사이트에서 X-Frame-Options가 활성화되어 있어서 그렇게 할 수 없습니다.
따라서 익스플로잇을 계속하려면 window.open 메서드를 시작하여 Origin과의 통신 참조를 확보해야 하며, 이는 **"탭으로 열기"**를 클릭하여 수행할 수 있습니다.
오른쪽에 있는 콘솔을 사용하여 특정 페이로드를 수정 및 제작하고, 익스플로잇 버튼을 클릭하여 시작되는 Cross-Origin Communication에서 테스트할 수 있습니다.
