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

8.1 KiB

DOM Indringer

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

DOM Indringer

DOM Indringer is 'n blaaierhulpmiddel wat in Burp se ingeboude blaaier geïnstalleer is. Dit help met die opsporing van DOM XSS kwesbaarhede deur verskeie bronne en sappe te gebruik, insluitend webboodskappe en prototipevervuiling. Die hulpmiddel is vooraf geïnstalleer as 'n uitbreiding.

DOM Indringer integreer 'n lêer binne die blaaier se DevTools-paneel wat die volgende moontlik maak:

  1. Identifikasie van beheerbare sappe op 'n webbladsy vir DOM XSS-toetsing, wat konteks- en sanitiseringsbesonderhede verskaf.
  2. Log, wysig, en herstuur webboodskappe wat gestuur is via die postMessage() metode vir DOM XSS-toetsing. DOM Indringer kan ook kwesbaarhede outomaties opspoor deur spesiaal vervaardigde webboodskappe.
  3. Opsoek na kliëntkant prototipevervuilingsbronne en skandering van beheerbare toestelle wat na risikosappe gestuur word.
  4. Identifikasie van DOM-verpletteringskwesbaarhede.

Skakel Dit Aan

Gaan na die Burp-uitbreiding in die ingeboude blaaier van Burp en skakel dit aan:

Verfris die bladsy en in die Dev Tools sal jy die DOM Indringer-lêer vind:

Spuit 'n Kanarie In

In die vorige beeld kan jy 'n willekeurige groep karakters sien, dit is die Kanarie. Jy moet dit nou begin inspuit in verskillende dele van die web (parameters, vorms, url...) en elke keer daarop klik. DOM Indringer sal nagaan of die kanarie in enige interessante sappe geëindig het wat benut kan word.

Verder sal die opsies Inject URL parameters en Inject vorms outomaties 'n nuwe lêer oopmaak deur die kanarie in elke URL-parameter en vorm wat dit vind, in te spuit.

Spuit 'n leë Kanarie In

As jy net potensiële sappe wil vind wat die bladsy mag hê, selfs al is hulle nie uitbuitbaar nie, kan jy soek na 'n leë kanarie.

Postboodskappe

DOM Indringer maak dit moontlik om te toets vir DOM XSS deur webboodskappe te gebruik met kenmerke soos:

  1. Log webboodskappe wat gestuur is via postMessage(), soortgelyk aan Burp Proxy se HTTP-versoek-/antwoordgeskiedenislogging.
  2. Wysiging en heruitreiking van webboodskappe om handmatig te toets vir DOM XSS, soortgelyk aan Burp Repeater se funksie.
  3. Outomatiese verandering en stuur van webboodskappe vir die ondersoek van DOM XSS.

Boodskapbesonderhede

Gedetailleerde inligting oor elke boodskap kan besigtig word deur daarop te klik, wat insluit of die kliëntkant-JavaScript die oorsprong, data, of bron-eienskappe van die boodskap benader.

  • oorsprong : As die oorspronginligting van die boodskap nie nagegaan word nie, kan jy kruis-oorsprongboodskappe na die gebeurtenishanterer vanaf 'n willekeurige eksterne domein stuur. Maar as dit nagegaan word, kan dit steeds onveilig wees.
  • data: Hierdie is waar die lading gestuur word. As hierdie data nie gebruik word nie, is die sap nutteloos.
  • bron: Evalueer of die bron-eienskap, gewoonlik na 'n iframe verwys, gevalideer word in plaas van die oorsprong. Selfs al is dit nagegaan, verseker dit nie dat die validering nie omseil kan word nie.

Antwoord op 'n boodskap

  1. Klik op enige boodskap vanuit die Boodskappe-sig om die boodskapbesonderhede dialoog oop te maak.
  2. Wysig die Data-veld soos benodig.
  3. Klik op Stuur.

Prototipevervuiling

DOM Indringer kan ook soek na Prototipevervuilingskwesbaarhede. Eerstens moet jy dit inskakel:

Dan sal dit soek na bronne wat jou in staat stel om arbitrêre eienskappe by die Object.prototype toe te voeg.

As iets gevind word, sal 'n Toets-knoppie verskyn om die gevonde bron te toets. Klik daarop, 'n nuwe lêer sal verskyn, skep 'n objek in die konsole en kyk of die toets-eienskap bestaan:

let b = {}
b.testproperty
Nadat jy 'n bron gevind het, kan jy **soek vir 'n toestel**:

1. 'n Nuwe lappie word oopgemaak deur DOM Invader wanneer die **Soek vir toestelle**-knoppie, wat langs enige geïdentifiseerde prototipevervuilingsbron in die **DOM**-sig, gevind kan word, geklik word. Die soektog na geskikte toestelle begin dan.
2. Intussen moet die **DOM Invader**-lappie in dieselfde lappie oopgemaak word in die DevTools-paneel. Nadat die soektog voltooi is, word enige lekplekke wat toeganklik is via die geïdentifiseerde toestelle in die **DOM**-sig vertoon. Byvoorbeeld, 'n toesteleienskap genaamd `html` wat aan die `innerHTML`-lek oorgedra word, word in die voorbeeld hieronder getoon.

## DOM clobbering

In die vorige beeld is dit moontlik om te sien dat die DOM clobbering-soektog aangeskakel kan word. Wanneer dit gedoen is, **sal DOM Invader begin soek na DOM clobbering-gebreke**.

## Verwysings

* [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>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>

Ander maniere om HackTricks te ondersteun:

* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.

</details>