mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
115 lines
8.1 KiB
Markdown
115 lines
8.1 KiB
Markdown
# 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>
|
|
|
|
Ander maniere om HackTricks te ondersteun:
|
|
|
|
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na 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 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.
|
|
|
|
#### 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:
|
|
|
|
<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**.
|
|
|
|
## 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>
|
|
```
|