mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-04 02:20:20 +00:00
113 lines
8 KiB
Markdown
113 lines
8 KiB
Markdown
# DOM Invader
|
|
|
|
<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>
|
|
|
|
Drugi načini podrške HackTricks-u:
|
|
|
|
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
|
* 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 **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **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č koji je instaliran u ugrađenom pregledaču Burp-a. Pomaže u **otkrivanju DOM XSS ranjivosti** koristeći različite izvore i ciljeve, uključujući web poruke i onečišćenje prototipa. Alat je unapred instaliran kao ekstenzija.
|
|
|
|
DOM Invader integriše karticu unutar DevTools panela pregledača koja omogućava sledeće:
|
|
|
|
1. **Identifikacija kontrolabilnih ciljeva** na veb stranici za testiranje DOM XSS-a, pružajući kontekst i detalje o sanitizaciji.
|
|
2. **Logovanje, uređivanje i ponovno slanje web poruka** poslatih putem metode `postMessage()` za testiranje DOM XSS-a. DOM Invader takođe može automatski otkriti ranjivosti koristeći posebno kreirane web poruke.
|
|
3. Otkrivanje izvora **onečišćenja prototipa na klijentskoj strani** i skeniranje kontrolabilnih uređaja poslatih na rizične ciljeve.
|
|
4. Identifikacija ranjivosti **DOM clobbering-a**.
|
|
|
|
### Omogući ga
|
|
|
|
U ugrađenom pregledaču Burp-a idite na **Burp ekstenziju** i omogućite je:
|
|
|
|
<figure><img src="../../.gitbook/assets/image (4) (1) (1) (2).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Sada osvežite stranicu i u **Dev Tools**-u ćete pronaći **karticu DOM Invader:**
|
|
|
|
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
### Ubaci kanarinca
|
|
|
|
Na prethodnoj slici možete videti **nasumičnu grupu znakova, to je kanarinac**. Sada treba da ga počnete **ubacivati** na različite delove veba (parametre, forme, URL...) i svaki put kliknite na pretragu. DOM Invader će proveriti da li se **kanarinac završio na nekom interesantnom cilju** koji bi mogao biti iskorišćen.
|
|
|
|
Osim toga, opcije **Ubaci URL parametre** i **Ubaci forme** će automatski otvoriti **novu karticu** i **ubaciti kanarinca** u svaki **URL** parametar i **formu** koju pronađe.
|
|
|
|
### Ubaci praznog kanarinca
|
|
|
|
Ako želite samo da pronađete potencijalne ciljeve koje stranica može imati, čak i ako nisu iskorišćivi, možete **tražiti praznog kanarinca**.
|
|
|
|
### Web poruke
|
|
|
|
DOM Invader omogućava testiranje DOM XSS-a korišćenjem web poruka sa funkcijama kao što su:
|
|
|
|
1. **Logovanje web poruka** poslatih putem `postMessage()`, slično logovanju istorije HTTP zahteva/odgovora u Burp Proxy-u.
|
|
2. **Izmena** i **ponovno slanje** web poruka radi ručnog testiranja DOM XSS-a, slično funkciji Burp Repeater-a.
|
|
3. **Automatska izmena** i slanje web poruka radi ispitivanja DOM XSS-a.
|
|
|
|
#### Detalji poruke
|
|
|
|
Detaljne informacije o svakoj poruci mogu se videti 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 porekla ka rukovaocu 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, cilj je beskoristan.
|
|
* **`source`**: Proverava da li je provereno svojstvo izvora, obično referencirajući iframe, umesto porekla. Čak i ako je ovo provereno, to ne garantuje da validacija ne može biti zaobiđena.
|
|
|
|
#### Odgovor na poruku
|
|
|
|
1. Iz **Prikaza poruka**, kliknite na bilo koju poruku da biste otvorili dijalog sa detaljima poruke.
|
|
2. Uredite polje **Podaci** po potrebi.
|
|
3. Kliknite na **Pošalji**.
|
|
|
|
### Onečišćenje prototipa
|
|
|
|
DOM Invader takođe može tražiti **ranjivosti onečišćenja prototipa**. Prvo, trebate ga omogućiti:
|
|
|
|
<figure><img src="../../.gitbook/assets/image (5) (1) (1) (3).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Zatim, on će **tražiti izvore** koji vam omogućavaju da dodate proizvoljna svojstva na **`Object.prototype`**.
|
|
|
|
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
|
|
```
|
|
Jednom kada pronađete izvor, možete **skenirati za uređaj**:
|
|
|
|
1. Kada se klikne dugme **Skeniraj za uređaje**, koje se može pronaći pored bilo kojeg identifikovanog izvora zagađenja prototipa u **DOM** prikazu, DOM Invader otvara novu karticu. Zatim počinje skeniranje za odgovarajuće uređaje.
|
|
2. U međuvremenu, u istoj kartici, treba otvoriti karticu **DOM Invader** u panelu DevTools-a. Nakon završetka skeniranja, svi izvori zagađenja koji su dostupni putem identifikovanih uređaja prikazuju se u **DOM** prikazu. Na primer, u donjem primeru se prikazuje svojstvo uređaja nazvano `html` koje se prosleđuje izvoru `innerHTML`.
|
|
|
|
## 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 tražiti ranjivosti DOM zagađenja**.
|
|
|
|
## 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>
|
|
|
|
<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>
|
|
|
|
Drugi načini podrške HackTricks-u:
|
|
|
|
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
|
* 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 **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **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>
|