mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			90 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # DOM Invader
 | |
| 
 | |
| {{#include ../../banners/hacktricks-training.md}}
 | |
| 
 | |
| ## DOM Invader
 | |
| 
 | |
| DOM Invader ni chombo cha kivinjari kilichosakinishwa katika kivinjari cha ndani cha Burp. Kinasaidia katika **kubaini udhaifu wa DOM XSS** kwa kutumia vyanzo na visinki mbalimbali, ikiwa ni pamoja na ujumbe wa wavuti na uchafuzi wa prototype. Chombo hiki kimewekwa awali kama nyongeza.
 | |
| 
 | |
| DOM Invader inaunganisha kichupo ndani ya paneli ya DevTools ya kivinjari ikiruhusu yafuatayo:
 | |
| 
 | |
| 1. **Utambuzi wa visinki vinavyoweza kudhibitiwa** kwenye ukurasa wa wavuti kwa ajili ya upimaji wa DOM XSS, ikitoa muktadha na maelezo ya kusafisha.
 | |
| 2. **Kurekodi, kuhariri, na kutuma tena ujumbe wa wavuti** uliopelekwa kupitia njia ya `postMessage()` kwa ajili ya upimaji wa DOM XSS. DOM Invader pia inaweza kugundua udhaifu kiotomatiki kwa kutumia ujumbe wa wavuti ulioandaliwa kwa njia maalum.
 | |
| 3. Kugundua **vyanzo vya uchafuzi wa prototype upande wa mteja** na kuskanisha vifaa vinavyoweza kudhibitiwa vilivyopelekwa kwa visinki hatari.
 | |
| 4. Utambuzi wa **udhaifu wa DOM clobbering**.
 | |
| 
 | |
| ### Wezesha
 | |
| 
 | |
| Katika kivinjari cha ndani cha Burp nenda kwenye **Burp extension** na uweke:
 | |
| 
 | |
| <figure><img src="../../images/image (1129).png" alt=""><figcaption></figcaption></figure>
 | |
| 
 | |
| Sasa refresh ukurasa na katika **Dev Tools** utaona **DOM Invader tab:**
 | |
| 
 | |
| <figure><img src="../../images/image (695).png" alt=""><figcaption></figcaption></figure>
 | |
| 
 | |
| ### Ingiza Canary
 | |
| 
 | |
| Katika picha ya awali unaweza kuona **kikundi cha herufi za nasibu, hiyo ndiyo Canary**. Sasa unapaswa kuanza **kuingiza** katika sehemu tofauti za wavuti (params, fomu, url...) na kila wakati bonyeza kutafuta. DOM Invader itakagua kama **canary imeishia katika sink yoyote ya kuvutia** ambayo inaweza kutumika.
 | |
| 
 | |
| Zaidi ya hayo, chaguo **Inject URL params** na Inject forms zitafungua kiotomatiki **kichupo kipya** **kikiingiza** **canary** katika kila **param** ya **URL** na **fomu** inayoipata.
 | |
| 
 | |
| ### Ingiza Canary tupu
 | |
| 
 | |
| Ikiwa unataka tu kutafuta visinki vya uwezekano ambavyo ukurasa unaweza kuwa navyo, hata kama havitumiwi, unaweza **kutafuta canary tupu**.
 | |
| 
 | |
| ### Ujumbe wa Post
 | |
| 
 | |
| DOM Invader inaruhusu upimaji wa DOM XSS kwa kutumia ujumbe wa wavuti wenye vipengele kama:
 | |
| 
 | |
| 1. **Kurekodi ujumbe wa wavuti** uliopelekwa kupitia `postMessage()`, kama historia ya ombi/jibu la HTTP ya Burp Proxy.
 | |
| 2. **Mabadiliko** na **kupeleka tena** ujumbe wa wavuti ili kupima kwa mikono DOM XSS, sawa na kazi ya Burp Repeater.
 | |
| 3. **Mabadiliko ya kiotomatiki** na kutuma ujumbe wa wavuti kwa ajili ya kuchunguza DOM XSS.
 | |
| 
 | |
| #### Maelezo ya ujumbe
 | |
| 
 | |
| Maelezo ya kina yanaweza kuonekana kuhusu kila ujumbe kwa kubonyeza juu yake, ambayo inajumuisha ikiwa JavaScript ya upande wa mteja inapata mali za `origin`, `data`, au `source` za ujumbe.
 | |
| 
 | |
| - **`origin`** : Ikiwa **taarifa ya asili ya ujumbe haijakaguliwa**, unaweza kuwa na uwezo wa kutuma ujumbe wa kuvuka asili kwa mpangaji wa tukio **kutoka kwa kikoa chochote cha nje**. Lakini ikiwa imekaguliwa bado inaweza kuwa isiyo salama.
 | |
| - **`data`**: Hapa ndipo mzigo unatumwa. Ikiwa data hii haitumiki, sink haitakuwa na maana.
 | |
| - **`source`**: Inakadiria ikiwa mali ya chanzo, ambayo kawaida inarejelea iframe, inathibitishwa badala ya asili. Hata kama hii imekaguliwa, haihakikishi kwamba uthibitisho hauwezi kupuuziliwa mbali.
 | |
| 
 | |
| #### Jibu ujumbe
 | |
| 
 | |
| 1. Kutoka kwenye mtazamo wa **Messages**, bonyeza ujumbe wowote kufungua kidirisha cha maelezo ya ujumbe.
 | |
| 2. Hariri uwanja wa **Data** kama inavyohitajika.
 | |
| 3. Bonyeza **Send**.
 | |
| 
 | |
| ### Uchafuzi wa Prototype
 | |
| 
 | |
| DOM Invader pia inaweza kutafuta **udhaifu wa Uchafuzi wa Prototype**. Kwanza, unahitaji kuuwezesha:
 | |
| 
 | |
| <figure><img src="../../images/image (1026).png" alt=""><figcaption></figcaption></figure>
 | |
| 
 | |
| Kisha, itatafuta **vyanzo** vinavyokuwezesha kuongeza mali zisizo za kawaida kwenye **`Object.prototype`**.
 | |
| 
 | |
| Ikiwa kitu chochote kimepatikana kitakuwa na **Test** kitufe ku **jaribu chanzo kilichopatikana**. Bonyeza juu yake, kichupo kipya kitaonekana, tengeneza kitu kwenye console na angalia ikiwa `testproperty` inapatikana:
 | |
| ```javascript
 | |
| let b = {}
 | |
| b.testproperty
 | |
| ```
 | |
| Mara tu unapopata chanzo unaweza **kuchunguza kwa gadget**:
 | |
| 
 | |
| 1. Kichupo kipya kinafunguliwa na DOM Invader wakati kitufe cha **Scan for gadgets**, ambacho kinaweza kupatikana karibu na chanzo chochote kilichotambuliwa cha uchafuzi wa prototype katika mtazamo wa **DOM**, kinapobonyezwa. Uchunguzi wa gadgets zinazofaa huanza.
 | |
| 2. Wakati huo huo, katika kichupo hicho hicho, kichupo cha **DOM Invader** kinapaswa kufunguliwa katika paneli ya DevTools. Baada ya uchunguzi kukamilika, vyanzo vyovyote vinavyopatikana kupitia gadgets zilizotambuliwa vinaonyeshwa katika mtazamo wa **DOM**. Kwa mfano, mali ya gadget inayoitwa `html` inayopitishwa kwa sink ya `innerHTML` inaonyeshwa katika mfano hapa chini.
 | |
| 
 | |
| ## DOM clobbering
 | |
| 
 | |
| Katika picha iliyopita inawezekana kuona kwamba uchunguzi wa DOM clobbering unaweza kuwashwa. Mara tu inavyokamilika, **DOM Invader itaanza kutafuta udhaifu wa DOM clobbering**.
 | |
| 
 | |
| ## Marejeleo
 | |
| 
 | |
| - [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)
 | |
| 
 | |
| {{#include ../../banners/hacktricks-training.md}}
 |