hacktricks/pentesting-web/xss-cross-site-scripting/dom-invader.md

114 lines
7.9 KiB
Markdown
Raw Normal View History

# DOM Invader
<details>
2024-02-10 13:11:20 +00:00
<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>
2024-02-10 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2024-01-01 17:15:42 +00:00
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
2024-02-10 13:11:20 +00:00
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
2024-02-10 13:11:20 +00:00
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
## DOM Invader
DOM Invader je alat za pregledač instaliran u ugrađenom pregledaču u Burp-u. Pomaže u **otkrivanju DOM XSS ranjivosti** koristeći različite izvore i slivove, uključujući web poruke i zagađenje prototipa. Alat je unapred instaliran kao ekstenzija.
DOM Invader integriše karticu unutar DevTools panela pregledača omogućavajući sledeće:
1. **Identifikacija kontrolabilnih slivova** na veb stranici za DOM XSS testiranje, pružajući kontekst i detalje o sanitizaciji.
2. **Logovanje, uređivanje i ponovno slanje web poruka** poslatih putem metode `postMessage()` za DOM XSS testiranje. DOM Invader takođe može automatski otkriti ranjivosti korišćenjem posebno kreiranih web poruka.
3. Otkrivanje **izvora zagađenja prototipa na klijentskoj strani** i skeniranje kontrolabilnih gedžeta poslatih ka rizičnim slivovima.
4. Identifikacija **DOM clobbering ranjivosti**.
### Omogućite ga
U ugrađenom pregledaču u Burp-u idite na **Burp ekstenzije** i omogućite ga:
<figure><img src="../../.gitbook/assets/image (4) (1) (1) (2).png" alt=""><figcaption></figcaption></figure>
Sada osvežite stranicu i u **Dev Tools**-ima ćete pronaći **DOM Invader karticu:**
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
### Ubacite kanarince
Na prethodnoj slici možete videti **nasumičnu grupu karaktera, to je kanarinka**. Sada treba da počnete da je **ubacujete** na različite delove veba (parametre, forme, url...) i svaki put kliknite na pretragu. DOM Invader će proveriti da li je **kanarinka završila u nekom interesantnom slivu** koji bi mogao biti iskorišćen.
Osim toga, opcije **Ubaci URL parametre** i Ubaci forme će automatski otvoriti **novu karticu** **ubacujući** **kanarinku** u svaki **URL** parametar i **formu** koju pronađe.
### Ubacite praznu kanarinku
Ako želite samo da pronađete potencijalne slivove koje stranica može imati, čak i ako nisu iskorišćivi, možete **tražiti praznu kanarinku**.
### Pošaljite poruke
DOM Invader omogućava testiranje za DOM XSS korišćenjem web poruka sa funkcijama kao što su:
2024-02-10 13:11:20 +00:00
1. **Logovanje web poruka** poslatih putem `postMessage()`, slično logovanju istorije HTTP zahteva/odgovora u Burp Proxy-u.
2. **Modifikacija** i **ponovno slanje** web poruka radi ručnog testiranja za DOM XSS, slično funkciji Burp Repeater-a.
3. **Automatska izmena** i slanje web poruka za ispitivanje DOM XSS-a.
2024-02-10 13:11:20 +00:00
#### Detalji poruke
Detaljne informacije mogu se videti o svakoj poruci klikom na nju, što uključuje da li klijentski JavaScript pristupa svojstvima `origin`, `data` ili `source` poruke.
* **`origin`** : Ako **informacije o poreklu poruke nisu proverene**, možda ćete moći da šaljete poruke preko granica događaja **sa proizvoljnog spoljnog domena**. Ali ako je provereno, i dalje može biti nesigurno.
* **`data`**: Ovde se šalje payload. Ako se ovi podaci ne koriste, sliv je beskoristan.
* **`source`**: Procenjuje da li je svojstvo izvora, obično referencirajući iframe, validirano umesto porekla. Čak i ako je ovo provereno, ne garantuje da validacija ne može biti zaobiđena.
#### Odgovorite na poruku
1. Iz **Prikaza poruka**, kliknite na bilo koju poruku da otvorite dijalog sa detaljima poruke.
2024-02-10 13:11:20 +00:00
2. Uredite polje **Podaci** po potrebi.
3. Kliknite na **Pošalji**.
### Zagađenje prototipa
DOM Invader takođe može tražiti **ranjivosti zagađenja prototipa**. Prvo, treba da ga omogućite:
<figure><img src="../../.gitbook/assets/image (5) (1) (1) (3).png" alt=""><figcaption></figcaption></figure>
Zatim, će **tražiti izvore** koji vam omogućavaju da dodate proizvoljna svojstva **`Object.prototype`**.
2024-02-10 13:11:20 +00:00
Ako se pronađe nešto, pojaviće se dugme **Test** za **testiranje pronađenog izvora**. Kliknite na njega, pojaviće se nova kartica, kreirajte objekat u konzoli i proverite da li postoji `testproperty`:
```javascript
let b = {}
b.testproperty
```
Kada pronađete izvor, možete **skenirati za uređaj**:
1. Novi tab se otvara kada se klikne dugme **Skeniraj za uređaje**, koje se može pronaći pored identifikovanog izvora zagađenja prototipa u prikazu **DOM**. Tada počinje skeniranje odgovarajućih uređaja.
2. U međuvremenu, u istom tabu, treba otvoriti karticu **DOM Invader** u panelu DevTools. Nakon završetka skeniranja, bilo koji otvori pristupačni putem identifikovanih uređaja prikazuju se u prikazu **DOM**. Na primer, svojstvo uređaja nazvano `html` koje se prosleđuje otvoru `innerHTML` prikazano je u primeru ispod.
## DOM preplavljenje
Na prethodnoj slici moguće je videti da se skeniranje DOM preplavljenja može uključiti. Kada se završi, **DOM Invader će početi tražiti ranjivosti DOM preplavljenja**.
2024-02-10 13:11:20 +00:00
## Reference
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader](https://portswigger.net/burp/documentation/desktop/tools/dom-invader)
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/enabling](https://portswigger.net/burp/documentation/desktop/tools/dom-invader/enabling)
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-xss](https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-xss)
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/web-messages](https://portswigger.net/burp/documentation/desktop/tools/dom-invader/web-messages)
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/prototype-pollution](https://portswigger.net/burp/documentation/desktop/tools/dom-invader/prototype-pollution)
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-clobbering](https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-clobbering)
<details>
2024-02-10 13:11:20 +00:00
<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>
2024-02-10 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2024-01-01 17:15:42 +00:00
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
2024-02-10 13:11:20 +00:00
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
2024-02-10 13:11:20 +00:00
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>