diff --git a/src/pentesting-web/xss-cross-site-scripting/dom-invader.md b/src/pentesting-web/xss-cross-site-scripting/dom-invader.md
index 929f9388d..818b5f763 100644
--- a/src/pentesting-web/xss-cross-site-scripting/dom-invader.md
+++ b/src/pentesting-web/xss-cross-site-scripting/dom-invader.md
@@ -4,78 +4,125 @@
## 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 je alat za pretraživač instaliran u **ugrađenom Chromium pretraživaču Burp Suite-a**. Pomaže u **otkrivanju DOM XSS i drugih ranjivosti na klijentskoj strani** (zagađenje prototipa, DOM klobiranje, itd.) automatskim **instrumentiranjem JavaScript izvora i odredišta**. Ekstenzija dolazi sa Burp-om i samo je potrebno omogućiti je.
-DOM Invader integriše karticu unutar DevTools panela pretraživača koja omogućava sledeće:
+DOM Invader dodaje karticu u DevTools panel pretraživača koja vam omogućava da:
-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**.
+1. **Identifikujete kontrolisane odredišta** u realnom vremenu, uključujući kontekst (atribut, HTML, URL, JS) i primenjenu sanitizaciju.
+2. **Zabeležite, uredite i ponovo pošaljite `postMessage()` web-poruke**, ili dozvolite ekstenziji da ih automatski mutira.
+3. **Otkrivanje izvora zagađenja prototipa na klijentskoj strani i skeniranje za gadget→sink lance**, generišući PoC-ove u hodu.
+4. **Pronađite DOM klobirajuće vektore** (npr. `id` / `name` kolizije koje prepisuju globalne promenljive).
+5. **Fino podesite ponašanje** putem bogatog UI za podešavanja (prilagođeni kanarinac, automatska injekcija, blokiranje preusmeravanja, liste izvora/odredišta, itd.).
-### Omogućite ga
+---
-U Burp-ovom ugrađenom pretraživaču idite na **Burp ekstenziju** i omogućite je:
+### 1. Omogućite ga
-Sada osvežite stranicu i u **Dev Tools** pronaći ćete **DOM Invader karticu:**
+1. Otvorite **Proxy ➜ Intercept ➜ Open Browser** (ugrađeni pretraživač Burp-a).
+2. Kliknite na **Burp Suite** logo (gore desno). Ako je skriven, prvo kliknite na deo slagalice.
+3. U **DOM Invader** kartici, prebacite **Enable DOM Invader** na ON i pritisnite **Reload**.
+4. Otvorite DevTools ( `F12` / Desni klik ➜ Inspect ) i pričvrstite ga. Pojaviće se novi **DOM Invader** panel.
-
+> Burp pamti stanje po profilu. Onemogućite ga pod *Settings ➜ Tools ➜ Burp’s browser ➜ Store settings...* ako je potrebno.
-### Umetnite Kanarinca
+### 2. Injektujte 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.
+**Kanarac** je nasumični marker string (npr. `xh9XKYlV`) koji DOM Invader prati. Možete:
-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.
+* **Kopirati** ga i ručno injektovati u parametre, forme, Web-Socket okvire, web-poruke, itd.
+* Koristiti **Inject URL params / Inject forms** dugmad da otvorite novu karticu gde se kanarac automatski dodaje svakom ključu/vrednosti upita ili polju forme.
+* Pretražiti za **praznim kanarcem** da otkrijete sva odredišta bez obzira na mogućnost eksploatacije (odlično za izviđanje).
-### Umetnite praznog Kanarinca
+#### Prilagođeni kanarac (2025+)
-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**.
+Burp 2024.12 je uveo **Canary settings** (Burp-logo ➜ DOM Invader ➜ Canary). Možete:
-### Post Poruke
+* **Nasumično** ili postaviti **prilagođeni string** (korisno za testiranje u više kartica ili kada se podrazumevana vrednost prirodno pojavljuje na stranici).
+* **Kopirati** vrednost u međuspremnik.
+* Promene zahtevaju **Reload**.
-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.
+### 3. Web-poruke (`postMessage`)
-#### Detalji poruke
+**Messages** podkartica beleži svaki `window.postMessage()` poziv, prikazujući korišćenje `origin`, `source` i `data`.
-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.
+• **Izmenite i ponovo pošaljite**: dvokliknite na poruku, izmenite `data`, i pritisnite **Send** (slično Burp Repeater-u).
-- **`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.
+• **Auto-fuzz**: omogućite **Postmessage interception ➜ Auto-mutate** u podešavanjima da dozvolite DOM Invader-u da generiše kanarac-bazirane payload-ove i ponovo ih pošalje handler-u.
-#### Odgovorite na poruku
+Pojmovi polja:
-1. Iz **Pregleda poruka**, kliknite na bilo koju poruku da otvorite dijalog sa detaljima poruke.
-2. Uredite **Data** polje po potrebi.
-3. Kliknite **Send**.
+* **origin** – da li handler validira `event.origin`.
+* **data** – lokacija payload-a. Ako se ne koristi, odredište je irelevantno.
+* **source** – validacija reference iframe-a / prozora; često slabija od stroge provere porekla.
-### Zagađenje prototipa
+---
-DOM Invader takođe može pretraživati **Ranjivosti zagađenja prototipa**. Prvo, treba da ga omogućite:
+### 4. Zagađenje prototipa
-
+Omogućite pod **Settings ➜ Attack types ➜ Prototype pollution**.
-Zatim, on će **pretraživati izvore** koji vam omogućavaju da dodate proizvoljna svojstva u **`Object.prototype`**.
+Tok rada:
+
+1. **Pretražujte** – DOM Invader označava zagađenje **izvora** (`__proto__`, `constructor`, `prototype`) pronađenih u URL-u/upitu/hash-u ili JSON web-porukama.
+2. **Testirajte** – kliknite *Test* da otvorite PoC karticu gde bi `Object.prototype.testproperty` trebao postojati:
-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
+let obj = {};
+console.log(obj.testproperty); // ➜ 'DOM_INVADER_PP_POC'
```
-Kada pronađete izvor, možete **skenirati za gadget**:
+3. **Skenirajte za gadgete** – DOM Invader bruteforcuje imena svojstava i prati da li neka završe u opasnim odredištima (npr. `innerHTML`).
+4. **Eksploatišite** – kada se pronađe lanac gadget-odredište, pojavljuje se dugme *Exploit* koje povezuje izvor + gadget + odredište da pokrene alert.
-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.
+Napredna podešavanja (ikona zupčanika):
-## DOM zagađenje
+* **Uklonite CSP / X-Frame-Options** da zadržite iframe-ove funkcionalnim tokom skeniranja gadgeta.
+* **Skenirajte tehnike u odvojenim okvirima** da izbegnete ometanje `__proto__` vs `constructor`.
+* **Onemogućite tehnike** pojedinačno za krhke aplikacije.
-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**.
+---
+
+### 5. DOM Klobiranje
+
+Prebacite **Attack types ➜ DOM clobbering**. DOM Invader prati dinamički kreirane elemente čiji `id`/`name` atributi kolidiraju sa globalnim promenljivama ili objektima forme (`` → klobira `window.location`). Unos se proizvodi svaki put kada korisnički kontrolisani markup dovede do zamene promenljive.
+
+---
+
+## 6. Pregled podešavanja (2025)
+
+DOM Invader je sada podeljen u **Main / Attack Types / Misc / Canary** kategorije.
+
+1. **Main**
+* **Enable DOM Invader** – globalni prekidač.
+* **Postmessage interception** – uključite/isključite beleženje poruka; pod-prekidači za automatsku mutaciju.
+* **Custom Sources/Sinks** – *ikona zupčanika* ➜ omogućite/onemogućite specifična odredišta (npr. `eval`, `setAttribute`) koja mogu pokvariti aplikaciju.
+
+2. **Attack Types**
+* **Prototype pollution** (sa podešavanjima po tehnici).
+* **DOM clobbering**.
+
+3. **Misc**
+* **Redirect prevention** – blokirajte klijentska preusmeravanja kako lista odredišta ne bi bila izgubljena.
+* **Breakpoint before redirect** – pauzirajte JS neposredno pre preusmeravanja radi inspekcije call-stack-a.
+* **Inject canary into all sources** – automatski injektujte kanarac svuda; konfigurisana lista dozvoljenih izvora/parametara.
+
+4. **Canary**
+* Prikaz / nasumično / postavite prilagođeni kanarac; kopirajte u međuspremnik. Promene zahtevaju ponovo učitavanje pretraživača.
+
+---
+
+### 7. Saveti i Dobre Prakse
+
+* **Koristite različit kanarac** – izbegavajte uobičajene stringove poput `test`, inače se javljaju lažno pozitivni rezultati.
+* **Privremeno onemogućite teške odredišta** (`eval`, `innerHTML`) ako ometaju funkcionalnost stranice tokom navigacije.
+* **Kombinujte sa Burp Repeater & Proxy** – replicirajte zahtev/odgovor pretraživača koji je proizveo ranjivo stanje i kreirajte konačne exploit URL-ove.
+* **Zapamtite opseg okvira** – izvori/odredišta se prikazuju po kontekstu pretraživanja; ranjivosti unutar iframe-ova mogu zahtevati ručnu pažnju.
+* **Izvezite dokaze** – desni klik na DOM Invader panel ➜ *Save screenshot* da uključite u izveštaje.
+
+---
## Reference
@@ -85,5 +132,7 @@ Na prethodnoj slici je moguće videti da se skeniranje za DOM zagađenje može u
- [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)
+- [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/settings/canary](https://portswigger.net/burp/documentation/desktop/tools/dom-invader/settings/canary)
+- [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/settings/misc](https://portswigger.net/burp/documentation/desktop/tools/dom-invader/settings/misc)
{{#include ../../banners/hacktricks-training.md}}