mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-30 08:30:57 +00:00
113 lines
8.1 KiB
Markdown
113 lines
8.1 KiB
Markdown
# Mvamizi wa DOM
|
|
|
|
<details>
|
|
|
|
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
|
|
|
|
Njia nyingine za kusaidia HackTricks:
|
|
|
|
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
|
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
|
|
## Mvamizi wa DOM
|
|
|
|
Mvamizi wa DOM ni chombo cha kivinjari kilichowekwa kwenye kivinjari kilichojengwa ndani ya Burp. Inasaidia katika **kugundua udhaifu wa DOM XSS** kutumia vyanzo na mabwawa tofauti, ikiwa ni pamoja na ujumbe wa wavuti na uchafuzi wa prototype. Chombo hicho kimefungwa kabla kama kifaa cha nyongeza.
|
|
|
|
Mvamizi wa DOM huingiza kichupo ndani ya kichupo cha DevTools cha kivinjari kuruhusu yafuatayo:
|
|
|
|
1. **Utambuzi wa mabwawa yanayoweza kudhibitiwa** kwenye ukurasa wa wavuti kwa ajili ya majaribio ya DOM XSS, kutoa muktadha na maelezo ya kusafisha.
|
|
2. **Kuingiza, kuhariri, na kutuma tena ujumbe wa wavuti** uliotumwa kupitia njia ya `postMessage()` kwa majaribio ya DOM XSS. Mvamizi wa DOM pia inaweza kugundua moja kwa moja udhaifu kwa kutumia ujumbe maalum wa wavuti.
|
|
3. Kugundua **vyanzo vya uchafuzi wa prototype upande wa mteja** na uchunguzi wa vifaa vinavyoweza kudhibitiwa vinavyotumwa kwenye mabwawa hatari.
|
|
4. Utambuzi wa **udhaifu wa kufunika DOM**.
|
|
|
|
### Wezesha
|
|
|
|
Katika kivinjari kilichojengwa ndani ya Burp nenda kwa **Kifaa cha nyongeza cha Burp** na kiwezesha:
|
|
|
|
<figure><img src="../../.gitbook/assets/image (4) (1) (1) (2).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Sasa refusha ukurasa na katika **Zana za Dev** utapata **kichupo cha Mvamizi wa DOM:**
|
|
|
|
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
### Ingiza Kifaru
|
|
|
|
Katika picha iliyotangulia unaweza kuona **kikundi cha herufi za kubahatisha, hiyo ni Kifaru**. Sasa unapaswa kuanza **kuingiza** katika sehemu tofauti za wavuti (parameta, fomu, url...) na kila wakati bonyeza tafuta. Mvamizi wa DOM atachunguza ikiwa **kifaru kilimalizika kwenye mabwawa yoyote ya kuvutia** ambayo yanaweza kutumiwa.
|
|
|
|
Zaidi ya hayo, chaguo **Ingiza parameta za URL** na Ingiza fomu itafungua moja kwa moja **kichupo kipya** **kukiingiza** **kifaru** katika kila **parameta ya URL** na **fomu** inayopata.
|
|
|
|
### Ingiza Kifaru tupu
|
|
|
|
Ikiwa unataka tu kutambua mabwawa yanayoweza kuwa nayo ukurasa, hata kama hawawezi kutumiwa, unaweza **kutafuta kifaru tupu**.
|
|
|
|
### Ujumbe wa Posta
|
|
|
|
Mvamizi wa DOM inaruhusu majaribio ya DOM XSS kwa kutumia ujumbe wa wavuti na vipengele kama:
|
|
|
|
1. **Kuingiza ujumbe wa wavuti** uliotumwa kupitia `postMessage()`, kama kumbukumbu ya historia ya maombi/majibu ya HTTP ya Burp Proxy.
|
|
2. **Kuhariri** na **kutuma tena** ujumbe wa wavuti kwa majaribio ya kawaida ya DOM XSS, sawa na kazi ya Burp Repeater.
|
|
3. **Kubadilisha moja kwa moja** na kutuma ujumbe wa wavuti kwa ajili ya kuchunguza DOM XSS.
|
|
|
|
#### Maelezo ya Ujumbe
|
|
|
|
Maelezo ya kina yanaweza kuonekana kuhusu kila ujumbe kwa kubonyeza, ambayo ni pamoja na ikiwa JavaScript upande wa mteja unafikia mali za `asili`, `data`, au `chanzo` za ujumbe.
|
|
|
|
* **`asili`** : Ikiwa **habari ya asili ya ujumbe haijachunguzwa**, unaweza kutuma ujumbe wa msalaba wa asili kwa kushughulikiaji wa tukio **kutoka kwenye kikoa cha nje cha kiholela**. Lakini ikiwa imechunguzwa bado inaweza kuwa si salama.
|
|
* **`data`**: Hapa ndipo mzigo unatumwa. Ikiwa data hii haikutumiwi, bwawa ni bure.
|
|
* **`chanzo`**: Inathibitisha ikiwa mali ya chanzo, kawaida ikirejelea iframe, imehakikiwa badala ya asili. Hata kama hii imechunguzwa, haitoi uhakika kwamba uthibitisho hauwezi kukiukwa.
|
|
|
|
#### Jibu ujumbe
|
|
|
|
1. Kutoka kwenye **Maoni** angalia ujumbe wowote ili ufungue dirisha la maelezo ya ujumbe.
|
|
2. Hariri **Data** kama inavyotakiwa.
|
|
3. Bonyeza **Tuma**.
|
|
|
|
### Uchafuzi wa Prototype
|
|
|
|
Mvamizi wa DOM pia unaweza kutafuta **udhaifu wa Uchafuzi wa Prototype**. Kwanza, unahitaji kuwezesha:
|
|
|
|
<figure><img src="../../.gitbook/assets/image (5) (1) (1) (3).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Kisha, ita **tafuta vyanzo** vinavyokuwezesha kuongeza mali za **`Object.prototype`**.
|
|
|
|
Ikiwa kitu kinapatikana, kitufe cha **Jaribu** kitatokea ili **kujaribu chanzo kilichopatikana**. Bonyeza, kichupo kipya kitatokea, tengeneza kitu kwenye konsoli na angalia ikiwa `testproperty` ipo:
|
|
```javascript
|
|
let b = {}
|
|
b.testproperty
|
|
```
|
|
Baada ya kupata chanzo unaweza **kutafuta kifaa**:
|
|
|
|
1. Kichupo kipya kinafunguliwa na DOM Invader wakati kifungo cha **Tafuta vifaa** kinapobonyezwa, ambacho kinaweza kupatikana karibu na chanzo chochote cha uchafuzi wa prototipi kilichotambuliwa katika mtazamo wa **DOM**, kimebonyezwa. Uchambuzi wa vifaa vinavyofaa kisha huanza.
|
|
2. Wakati huo huo, katika kichupo kile kile, kichupo cha **DOM Invader** kinapaswa kufunguliwa kwenye paneli ya DevTools. Baada ya uchambuzi kukamilika, mabwawa yoyote yanayopatikana kupitia vifaa vilivyotambuliwa huonyeshwa katika mtazamo wa **DOM**. Kwa mfano, mali ya kifaa inayoitwa `html` ikipitishwa kwenye bwawa la `innerHTML` inaonyeshwa katika mfano hapa chini.
|
|
|
|
## DOM clobbering
|
|
|
|
Katika picha iliyopita inawezekana kuona kwamba uchambuzi wa kufunika DOM unaweza kuwashwa. Mara baada ya kufanyika, **DOM Invader itaanza kutafuta vulnerabilities za kufunika DOM**.
|
|
|
|
## Marejeo
|
|
|
|
* [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>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Njia nyingine za kusaidia HackTricks:
|
|
|
|
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
|
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
|
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|