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

7.8 KiB

DOM Invader

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

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 oblikovane 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.

Enable It

U Burp-ovom ugrađenom pretraživaču idite na Burp ekstenziju i omogućite je:

Sada osvežite stranicu i u Dev Tools pronaći ćete DOM Invader karticu:

Inject a Canary

Na prethodnoj slici možete videti nasumičnu grupu karaktera, to je Canary. Sada biste trebali početi ubacivati ga na različitim delovima veba (parametri, forme, url...) i svaki put kliknite na pretragu. DOM Invader će proveriti da li je canary završio u nekom interesantnom odredištu koje bi moglo biti iskorišćeno.

Štaviše, opcije Inject URL params i Inject forms automatski će otvoriti novu karticu ubacujući canary u svaki URL parametar i formu koju pronađe.

Inject an empty Canary

Ako samo želite da pronađete potencijalna odredišta koja stranica može imati, čak i ako nisu iskorišćiva, možete pretraživati za praznim canary.

Post Messages

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.

Message details

Detaljne informacije mogu se videti o svakoj poruci 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.

Reply a message

  1. Iz Messages pregleda, kliknite na bilo koju poruku da otvorite dijalog sa detaljima poruke.
  2. Uredite Data polje po potrebi.
  3. Kliknite Send.

Prototype Pollution

DOM Invader takođe može pretraživati za Prototype Pollution ranjivostima. Prvo, morate je omogućiti:

Zatim ć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:

let b = {}
b.testproperty

Once you found a source you can scan for a gadget:

  1. Novi tab se otvara kada se klikne na dugme Scan for gadgets, koje se može naći pored bilo kojeg identifikovanog izvora prototipne zagađenosti u DOM prikazu. Skener 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 izlazi dostupni putem identifikovanih gadgeta se prikazuju u DOM prikazu. Na primer, svojstvo gadgeta nazvano html koje se prosleđuje innerHTML izlazu prikazano je 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.

References

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}