hacktricks/pentesting-web/postmessage-vulnerabilities/blocking-main-page-to-steal-postmessage.md
2024-02-10 13:11:20 +00:00

50 lines
4.5 KiB
Markdown

# Blokiranje glavne stranice da bi se ukrao postmessage
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Radite li u **kompaniji za kibernetičku bezbednost**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
## Pobeda RC-ova sa Iframe-ovima
Prema ovom [**Terjanq writeup-u**](https://gist.github.com/terjanq/7c1a71b83db5e02253c218765f96a710) blob dokumenti kreirani iz null origin-a su izolovani radi bezbednosti, što znači da ako održavate zauzetu glavnu stranicu, iframe stranica će biti izvršena.
U suštini, u tom izazovu se izvršava **izolovani iframe** i **odmah nakon** što se **učita**, **roditeljska** stranica će **poslati post** poruku sa **flag-om**.\
Međutim, ta komunikacija putem postmessage-a je **ranjiva na XSS** (iframe može izvršiti JS kod).
Stoga, cilj napadača je da **omogući roditelju da kreira iframe**, ali **pre nego što** roditeljska stranica **pošalje** osetljive podatke (**flag**), **drži je zauzetom** i šalje **payload iframe-u**. Dok je **roditelj zauzet**, **iframe izvršava payload** koji će biti neki JS kod koji će slušati **postmessage poruku roditelja i procuriti flag**.\
Na kraju, iframe je izvršio payload i roditeljska stranica prestaje biti zauzeta, pa šalje flag i payload ga otkriva.
Ali kako možete učiniti da roditelj bude **zauzet odmah nakon što generiše iframe i samo dok čeka da iframe bude spreman da pošalje osetljive podatke?** U suštini, trebate pronaći **asinhronu akciju** koju možete da izvršite na roditelju. Na primer, u tom izazovu roditelj je **slušao** post poruke na sledeći način:
```javascript
window.addEventListener('message', (e) => {
if (e.data == 'blob loaded') {
$("#previewModal").modal();
}
});
```
tako je bilo moguće poslati **veliki celi broj u postmessage** koji će biti **pretvoren u string** u toj poređenju, što će oduzeti neko vreme:
```bash
const buffer = new Uint8Array(1e7);
win?.postMessage(buffer, '*', [buffer.buffer]);
```
I kako biste bili precizni i **poslali** taj **postmessage** odmah **nakon** što je **iframe** kreiran, ali **pre** nego što je spreman da primi podatke od roditelja, moraćete da **manipulišete milisekundama `setTimeout`**.
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>