mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # SOME - Same Origin Method Execution
 | |
| 
 | |
| {{#include ../../banners/hacktricks-training.md}}
 | |
| 
 | |
| ## Same Origin Method Execution
 | |
| 
 | |
| Kutakuwa na nyakati ambapo unaweza kutekeleza javascript kidogo kwenye ukurasa. Kwa mfano, katika kesi ambapo unaweza [**kudhibiti thamani ya callback ambayo itatekelezwa**](#javascript-function).
 | |
| 
 | |
| Katika hizo kesi, moja ya mambo bora unayoweza kufanya ni **kufikia DOM ili kuita chochote** kitendo nyeti unachoweza kukiona huko (kama kubonyeza kitufe). Hata hivyo, kwa kawaida utapata udhaifu huu katika **nukta ndogo bila kitu chochote cha kuvutia katika DOM**.
 | |
| 
 | |
| Katika hali hizo, shambulio hili litakuwa la manufaa sana, kwa sababu lengo lake ni kuwa na uwezo wa **kudhulumu utekelezaji wa JS mdogo ndani ya DOM kutoka ukurasa tofauti kutoka kwenye kikoa kimoja** na vitendo vingi vya kuvutia.
 | |
| 
 | |
| Kimsingi, mtiririko wa shambulio ni kama ifuatavyo:
 | |
| 
 | |
| - Pata **callback ambayo unaweza kudhulumu** (inaweza kuwa na mipaka kwa \[\w\\.\_]).
 | |
| - Ikiwa haijapunguzika na unaweza kutekeleza JS yoyote, unaweza tu kudhulumu hii kama XSS ya kawaida.
 | |
| - Fanya **mhasiriwa afungue ukurasa** unaodhibitiwa na **mshambuliaji**.
 | |
| - **Ukurasa utafungua mwenyewe** katika **dirisha tofauti** (dirisha jipya litakuwa na kitu **`opener`** kinachorejelea cha awali).
 | |
| - **Ukurasa wa awali** utafungua **ukurasa** ambapo **DOM ya kuvutia** iko.
 | |
| - **Ukurasa wa pili** utafungua **ukurasa dhaifu ukidhalilisha callback** na kutumia kitu **`opener`** ili **kufikia na kutekeleza kitendo chochote katika ukurasa wa awali** (ambayo sasa ina DOM ya kuvutia).
 | |
| 
 | |
| > [!CAUTION]
 | |
| > Kumbuka kwamba hata kama ukurasa wa awali unapata URL mpya baada ya kuunda ukurasa wa pili, **kitu cha `opener` cha ukurasa wa pili bado ni rejeleo halali kwa ukurasa wa kwanza katika DOM mpya**.
 | |
| >
 | |
| > Zaidi ya hayo, ili ukurasa wa pili uweze kutumia kitu cha opener **kurasa zote mbili lazima ziwe katika kikoa kimoja**. Hii ndiyo sababu, ili kudhulumu udhaifu huu, unahitaji kutafuta aina fulani ya **XSS katika kikoa kimoja**.
 | |
| 
 | |
| ### Exploitation
 | |
| 
 | |
| - Unaweza kutumia fomu hii ili **kuunda PoC** ya kudhulumu aina hii ya udhaifu: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
 | |
| - Ili kupata njia ya DOM kwa kipengele cha HTML chenye bonyezo unaweza kutumia nyongeza hii ya kivinjari: [https://www.someattack.com/Playground/targeting_tool](https://www.someattack.com/Playground/targeting_tool)
 | |
| 
 | |
| ### Example
 | |
| 
 | |
| - Unaweza kupata mfano dhaifu katika [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/)
 | |
| - Kumbuka kwamba katika mfano huu seva in **azalisha msimbo wa javascript** na **kuongeza** kwenye HTML kulingana na **maudhui ya parameter ya callback:** `<script>opener.{callbacl_content}</script>`. Ndio maana katika mfano huu huwezi kuhitaji kuonyesha matumizi ya `opener` wazi.
 | |
| - Pia angalia andiko hili la CTF: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
 | |
| 
 | |
| ## References
 | |
| 
 | |
| - [https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/](https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/)
 | |
| 
 | |
| {{#include ../../banners/hacktricks-training.md}}
 |