mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
90 lines
5.8 KiB
Markdown
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}}
|