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

116 lines
8.1 KiB
Markdown
Raw Normal View History

# DOM Indringer
<details>
<summary><strong>Leer AWS hak 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>
2024-02-11 02:07:06 +00:00
Ander maniere om HackTricks te ondersteun:
2024-01-01 17:15:42 +00:00
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
2024-02-11 02:07:06 +00:00
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](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 PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
## 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:
<figure><img src="../../.gitbook/assets/image (1129).png" alt=""><figcaption></figcaption></figure>
Verfris die bladsy en in die **Dev Tools** sal jy die **DOM Indringer-lêer vind:**
<figure><img src="../../.gitbook/assets/image (695).png" alt=""><figcaption></figcaption></figure>
### 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.
2024-02-11 02:07:06 +00:00
#### 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.
2024-02-11 02:07:06 +00:00
#### 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.
2024-02-11 02:07:06 +00:00
3. Klik op **Stuur**.
### Prototipevervuiling
DOM Indringer kan ook soek na **Prototipevervuilingskwesbaarhede**. Eerstens moet jy dit inskakel:
<figure><img src="../../.gitbook/assets/image (1026).png" alt=""><figcaption></figcaption></figure>
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:
```javascript
let b = {}
b.testproperty
```
```markdown
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**.
2024-02-11 02:07:06 +00:00
## 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>
2024-02-11 02:07:06 +00:00
Ander maniere om HackTricks te ondersteun:
2024-01-01 17:15:42 +00:00
* 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>
```