mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
115 lines
8 KiB
Markdown
115 lines
8 KiB
Markdown
# DOM Invader
|
|
|
|
{% hint style="success" %}
|
|
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Ondersteun HackTricks</summary>
|
|
|
|
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
|
|
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
## DOM Invader
|
|
|
|
DOM Invader is 'n blaartoepassing wat in Burp se ingeboude blaasker geïnstalleer is. Dit help met **die opsporing van DOM XSS kwesbaarhede** deur verskeie bronne en sinkholes, insluitend webboodskappe en prototipe besoedeling. Die hulpmiddel is vooraf geïnstalleer as 'n uitbreiding.
|
|
|
|
DOM Invader integreer 'n oortjie binne die blaasker se DevTools paneel wat die volgende moontlik maak:
|
|
|
|
1. **Identifikasie van beheerde sinkholes** op 'n webblad vir DOM XSS toetsing, wat konteks en sanitasiedetails verskaf.
|
|
2. **Teken, redigeer en stuur webboodskappe weer** wat via die `postMessage()` metode gestuur is vir DOM XSS toetsing. DOM Invader kan ook outomaties kwesbaarhede opspoor deur spesiaal saamgestelde webboodskappe.
|
|
3. Opsporing van **klantkant prototipe besoedeling** bronne en skandering van beheerde gadgets wat na riskante sinkholes gestuur word.
|
|
4. Identifikasie van **DOM klobbering kwesbaarhede**.
|
|
|
|
### Aktiveer Dit
|
|
|
|
In Burp se ingeboude blaasker, gaan na die **Burp uitbreiding** en aktiveer dit:
|
|
|
|
<figure><img src="../../.gitbook/assets/image (1129).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Verfris nou die bladsy en in die **Dev Tools** sal jy die **DOM Invader oortjie** vind:
|
|
|
|
<figure><img src="../../.gitbook/assets/image (695).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
### Spuit 'n Kanarie
|
|
|
|
In die vorige beeld kan jy 'n **willekeurige groep karakters sien, dit is die Kanarie**. Jy moet nou begin **spuit** dit in verskillende dele van die web (params, vorms, url...) en elke keer klik soek dit. DOM Invader sal kyk of die **kanarie in enige interessante sinkhole geëindig het** wat uitgebuit kan word.
|
|
|
|
Boonop sal die opsies **Spuit URL params** en Spuit vorms outomaties 'n **nuwe oortjie** **spuit** die **kanarie** in elke **URL** param en **vorm** wat dit vind.
|
|
|
|
### Spuit 'n leë Kanarie
|
|
|
|
As jy net wil vind watter potensiële sinkholes die bladsy mag hê, selfs al is hulle nie uitbuitbaar nie, kan jy **soek na 'n leë kanarie**.
|
|
|
|
### Post Boodskappe
|
|
|
|
DOM Invader laat toetsing van DOM XSS toe deur webboodskappe met funksies soos:
|
|
|
|
1. **Teken webboodskappe** wat via `postMessage()` gestuur is, soortgelyk aan Burp Proxy se HTTP versoek/antwoord geskiedenis teken.
|
|
2. **Wysiging** en **heruitreiking** van webboodskappe om handmatig vir DOM XSS te toets, soortgelyk aan Burp Repeater se funksie.
|
|
3. **Outomatiese verandering** en sending van webboodskappe vir die ondersoek van DOM XSS.
|
|
|
|
#### Boodskap besonderhede
|
|
|
|
Gedetailleerde inligting kan oor elke boodskap gesien word deur daarop te klik, wat insluit of die klantkant JavaScript die `origin`, `data`, of `source` eienskappe van die boodskap benader.
|
|
|
|
* **`origin`** : As die **oorsprong inligting van die boodskap nie nagegaan word nie**, mag jy in staat wees om kruis-oorsprong boodskappe na die gebeurtenis handler **van 'n arbitrêre eksterne domein** te stuur. Maar as dit nagegaan word, kan dit steeds onveilig wees.
|
|
* **`data`**: Dit is waar die payload gestuur word. As hierdie data nie gebruik word nie, is die sinkhole nutteloos.
|
|
* **`source`**: Evalueer of die bron eienskap, wat gewoonlik na 'n iframe verwys, gevalideer word in plaas van die oorsprong. Selfs al word dit nagegaan, verseker dit nie dat die validasie omseil kan word nie.
|
|
|
|
#### Antwoord 'n boodskap
|
|
|
|
1. Van die **Boodskappe** sien, klik op enige boodskap om die boodskap besonderhede dialoog te open.
|
|
2. Wysig die **Data** veld soos benodig.
|
|
3. Klik **Stuur**.
|
|
|
|
### Prototipe Besoedeling
|
|
|
|
DOM Invader kan ook soek na **Prototipe Besoedeling kwesbaarhede**. Eerstens, jy moet dit aktiveer:
|
|
|
|
<figure><img src="../../.gitbook/assets/image (1026).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Dan, dit sal **soek na bronne** wat jou in staat stel om arbitrêre eienskappe aan 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 oortjie sal verskyn, skep 'n objek in die konsole en kyk of die `testproperty` bestaan:
|
|
```javascript
|
|
let b = {}
|
|
b.testproperty
|
|
```
|
|
Once you found a source you can **scan for a gadget**:
|
|
|
|
1. 'n Nuwe oortjie word deur DOM Invader geopen wanneer die **Scan for gadgets** knoppie, wat langs enige geïdentifiseerde prototipe besoedeling bron in die **DOM** weergawe gevind kan word, geklik word. Die skandering vir geskikte gadgets begin dan.
|
|
2. Intussen, in dieselfde oortjie, moet die **DOM Invader** oortjie in die DevTools paneel geopen wees. Nadat die skandering voltooi is, word enige sinks wat toeganklik is via die geïdentifiseerde gadgets in die **DOM** weergawe vertoon. Byvoorbeeld, 'n gadget eienskap genaamd `html` wat aan die `innerHTML` sink oorgedra word, word in die voorbeeld hieronder getoon.
|
|
|
|
## DOM clobbering
|
|
|
|
In die vorige beeld is dit moontlik om te sien dat die DOM clobbering skandering aangeskakel kan word. Sodra dit gedoen is, **sal DOM Invader begin soek na DOM clobbering kwesbaarhede**.
|
|
|
|
## References
|
|
|
|
* [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)
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|