mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 01:17:36 +00:00
5.1 KiB
5.1 KiB
ポストメッセージを盗むためにメインページをブロックする
htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ!
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?またはPEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを発見し、独占的なNFTコレクションを見つけます
- 公式PEASS&HackTricksスワッグを手に入れます
- 💬 Discordグループに参加するか、Telegramグループに参加するか、Twitterでフォローする🐦@carlospolopm。
- ハッキングトリックを共有するために、hacktricksリポジトリとhacktricks-cloudリポジトリにPRを提出してください。
IframesでRCを獲得する
このTerjanqの解説によると、ヌル起源から作成されたblobドキュメントはセキュリティ上の利点のために分離されており、つまり、メインページをビジーにしておくと、iframeページが実行されます。
基本的に、そのチャレンジでは分離されたiframeが実行され、ロードされた直後に親ページがフラグを含むポストメッセージを送信します。
ただし、そのポストメッセージ通信はXSSに対して脆弱です(iframeはJSコードを実行できます)。
したがって、攻撃者の目標は、親がiframeを作成させるが、親ページが機密データ(フラグ)を送信する前にそれをビジーにしてiframeにペイロードを送信することです。親がビジーである間、iframeはペイロードを実行し、親のポストメッセージメッセージを盗み、フラグを漏洩します。
最後に、iframeがペイロードを実行し、親ページがビジーでなくなると、フラグを送信し、ペイロードが漏洩します。
しかし、親をiframeを生成した直後にビジーにさせ、iframeが準備完了して機密データを送信するのを待っている間だけビジーにさせる方法はどうすればよいでしょうか?基本的に、親が実行する非同期アクションを見つける必要があります。たとえば、そのチャレンジでは、親が次のようにポストメッセージをリッスンしていました:
window.addEventListener('message', (e) => {
if (e.data == 'blob loaded') {
$("#previewModal").modal();
}
});
したがって、postmessage で大きな整数を送信し、その比較で文字列に変換される可能性があり、それには時間がかかります。
const buffer = new Uint8Array(1e7);
win?.postMessage(buffer, '*', [buffer.buffer]);
そして、iframeが作成された直後にpostmessageを正確に送信し、親からデータを受信する準備が整う前に、setTimeout
のミリ秒を調整する必要があります。
htARTE(HackTricks AWS Red Team Expert)で**ゼロからヒーローまでのAWSハッキング**を学びましょう!
- サイバーセキュリティ企業で働いていますか?HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを発見し、独占的なNFTsコレクションをご覧ください
- 公式PEASS&HackTricksスウェグを手に入れましょう
- 💬 DiscordグループまたはTelegramグループに参加するか、Twitterで私をフォローしてください 🐦@carlospolopm。
- **hacktricksリポジトリとhacktricks-cloudリポジトリ**にPRを提出して、あなたのハッキングテクニックを共有してください。