mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
50 lines
4.5 KiB
Markdown
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>
|