Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Згідно з цим [**Terjanq writeup**](https://gist.github.com/terjanq/7c1a71b83db5e02253c218765f96a710) блоб-документи, створені з нульових джерел, ізольовані для безпеки, що означає, що якщо ви зайняті основною сторінкою, сторінка iframe буде виконана.
В основному, у цьому виклику **ізольований iframe виконується**і відразу **після** його **завантаження****батьківська** сторінка **надішле** повідомлення **post** з **флагом**.\
Однак ця комунікація postmessage є **вразливою до XSS** (**iframe** може виконувати JS-код).
Отже, мета зловмисника полягає в тому, щоб **дозволити батьківській сторінці створити iframe**, але **перед тим**, як **батьківська** сторінка **надішле** чутливі дані (**флаг**), **тримати її зайнятою**і надіслати **payload до iframe**. Поки **батьківська сторінка зайнята**, **iframe виконує payload**, який буде деяким JS, що слухатиме **повідомлення postmessage батьківської сторінки і витікатиме флаг**.\
Нарешті, iframe виконав payload, і батьківська сторінка перестає бути зайнятою, тому вона надсилає флаг, а payload його витікає.
Але як ви могли б змусити батьківську сторінку бути **зайнятою відразу після того, як вона згенерувала iframe і лише поки чекає, щоб iframe був готовий надіслати чутливі дані?**В основному, вам потрібно знайти **асинхронну****дію**, яку ви могли б змусити батьківську сторінку **виконати**. Наприклад, у цьому виклику батьківська сторінка **слухала****postmessages** ось так:
І щоб бути точним і**надіслати** це **postmessage** саме **після** створення **iframe**, але **до** того, як він буде **готовий** отримати дані від батьківського елемента, вам потрібно буде **погратися з мілісекундами у `setTimeout`**.
{% hint style="success" %}
Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.