90 lines
5.8 KiB
Markdown

# DOM Invader
{{#include ../../banners/hacktricks-training.md}}
## DOM Invader
DOM Invader je alat za pretraživač instaliran u Burp-ovom ugrađenom pretraživaču. Pomaže u **otkrivanju DOM XSS ranjivosti** koristeći različite izvore i odredišta, uključujući web poruke i zagađenje prototipa. Alat je unapred instaliran kao ekstenzija.
DOM Invader integriše karticu unutar DevTools panela pretraživača koja omogućava sledeće:
1. **Identifikaciju kontrolisanih odredišta** na veb stranici za DOM XSS testiranje, pružajući kontekst i detalje o sanitizaciji.
2. **Zapisivanje, uređivanje i ponovno slanje web poruka** poslatih putem `postMessage()` metode za DOM XSS testiranje. DOM Invader takođe može automatski otkriti ranjivosti koristeći posebno kreirane web poruke.
3. Otkrivanje **izvora zagađenja prototipa na klijentskoj strani** i skeniranje kontrolisanih gadgeta poslatih u rizična odredišta.
4. Identifikaciju **DOM clobbering ranjivosti**.
### Omogućite ga
U Burp-ovom ugrađenom pretraživaču idite na **Burp ekstenziju** i omogućite je:
<figure><img src="../../images/image (1129).png" alt=""><figcaption></figcaption></figure>
Sada osvežite stranicu i u **Dev Tools** pronaći ćete **DOM Invader karticu:**
<figure><img src="../../images/image (695).png" alt=""><figcaption></figcaption></figure>
### Umetnite Kanarinca
Na prethodnoj slici možete videti **slučajnu grupu karaktera, to je Kanarinca**. Sada treba da počnete da **ubacujete** to na različitim mestima na webu (parametri, forme, url...) i svaki put kliknite na pretragu. DOM Invader će proveriti da li je **kanarinca završila u nekom interesantnom odredištu** koje bi moglo biti iskorišćeno.
Pored toga, opcije **Umetni URL parametre** i **Umetni forme** automatski će otvoriti **novu karticu** **ubacujući** **kanarinca** u svaki **URL** parametar i **formu** koju pronađe.
### Umetnite praznog Kanarinca
Ako samo želite da pronađete potencijalna odredišta koja stranica može imati, čak i ako nisu iskorišćiva, možete **pretraživati praznog kanarinca**.
### Post Poruke
DOM Invader omogućava testiranje za DOM XSS koristeći web poruke sa funkcijama kao što su:
1. **Zapisivanje web poruka** poslatih putem `postMessage()`, slično kao zapisivanje HTTP zahteva/odgovora u Burp Proxy.
2. **Izmena** i **ponovno slanje** web poruka za ručno testiranje DOM XSS, slično funkciji Burp Repeater-a.
3. **Automatska izmena** i slanje web poruka za ispitivanje DOM XSS.
#### Detalji poruke
Detaljne informacije o svakoj poruci mogu se videti klikom na nju, što uključuje da li klijentski JavaScript pristupa `origin`, `data` ili `source` svojstvima poruke.
- **`origin`** : Ako **informacije o poreklu poruke nisu proverene**, možda ćete moći da šaljete poruke između različitih domena ka upravljaču događajima **iz proizvoljnog spoljnog domena**. Ali ako se proverava, to i dalje može biti nesigurno.
- **`data`**: Ovo je mesto gde se payload šalje. Ako se ovi podaci ne koriste, odredište je beskorisno.
- **`source`**: Procenjuje da li je svojstvo izvora, obično referencirajući iframe, validirano umesto porekla. Čak i ako se ovo proverava, to ne osigurava da se validacija ne može zaobići.
#### Odgovorite na poruku
1. Iz **Pregleda poruka**, kliknite na bilo koju poruku da otvorite dijalog sa detaljima poruke.
2. Uredite **Data** polje po potrebi.
3. Kliknite **Send**.
### Zagađenje prototipa
DOM Invader takođe može pretraživati **Ranjivosti zagađenja prototipa**. Prvo, treba da ga omogućite:
<figure><img src="../../images/image (1026).png" alt=""><figcaption></figcaption></figure>
Zatim, on će **pretraživati izvore** koji vam omogućavaju da dodate proizvoljna svojstva u **`Object.prototype`**.
Ako se nešto pronađe, pojaviće se dugme **Test** da **testirate pronađeni izvor**. Kliknite na njega, nova kartica će se pojaviti, kreirajte objekat u konzoli i proverite da li `testproperty` postoji:
```javascript
let b = {}
b.testproperty
```
Kada pronađete izvor, možete **skenirati za gadget**:
1. Novi tab se otvara od strane DOM Invader kada se klikne na dugme **Scan for gadgets**, koje se može naći pored bilo kojeg identifikovanog izvora zagađenja prototipa u **DOM** prikazu. Skeniranje za odgovarajuće gadgete tada počinje.
2. U međuvremenu, u istom tabu, **DOM Invader** tab treba da bude otvoren u DevTools panelu. Nakon što skeniranje završi, svi izvori dostupni putem identifikovanih gadgeta se prikazuju u **DOM** prikazu. Na primer, svojstvo gadgeta nazvano `html` koje se prosleđuje `innerHTML` izvoru je prikazano u sledećem primeru.
## DOM zagađenje
Na prethodnoj slici je moguće videti da se skeniranje za DOM zagađenje može uključiti. Kada se to uradi, **DOM Invader će početi da traži DOM zagađivačke ranjivosti**.
## 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)
{{#include ../../banners/hacktricks-training.md}}