SOME - Same Origin Method Execution
Reading time: 4 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Same Origin Method Execution
ऐसे अवसर होंगे जब आप एक पृष्ठ में कुछ सीमित जावास्क्रिप्ट निष्पादित कर सकते हैं। उदाहरण के लिए, उस मामले में जब आप एक कॉलबैक मान को नियंत्रित कर सकते हैं जो निष्पादित होगा.
उन मामलों में, आप जो सबसे अच्छा कर सकते हैं वह है DOM तक पहुंच प्राप्त करना ताकि आप वहां जो भी संवेदनशील क्रिया कर सकते हैं उसे कॉल कर सकें (जैसे एक बटन पर क्लिक करना)। हालाँकि, आमतौर पर आप इस भेद्यता को छोटे एंडपॉइंट्स में पाएंगे जिनमें DOM में कोई दिलचस्प चीज नहीं है।
उन परिदृश्यों में, यह हमला बहुत उपयोगी होगा, क्योंकि इसका लक्ष्य यह है कि आप एक ही डोमेन के विभिन्न पृष्ठ से DOM के अंदर सीमित JS निष्पादन का दुरुपयोग कर सकें जिसमें बहुत सारी दिलचस्प क्रियाएँ हैं।
बुनियादी रूप से, हमले का प्रवाह निम्नलिखित है:
- एक कॉलबैक खोजें जिसे आप दुरुपयोग कर सकते हैं (संभावित रूप से [\w\._] तक सीमित)।
- यदि यह सीमित नहीं है और आप कोई भी JS निष्पादित कर सकते हैं, तो आप इसे सामान्य XSS के रूप में दुरुपयोग कर सकते हैं।
- शिकार को एक पृष्ठ खोलने के लिए मजबूर करें जो हमलावर द्वारा नियंत्रित है।
- पृष्ठ स्वयं एक अलग विंडो में खुलेगा (नई विंडो में
opener
ऑब्जेक्ट होगा जो प्रारंभिक एक को संदर्भित करता है)। - प्रारंभिक पृष्ठ उस पृष्ठ को लोड करेगा जहां दिलचस्प DOM स्थित है।
- दूसरा पृष्ठ कॉलबैक का दुरुपयोग करते हुए कमजोर पृष्ठ को लोड करेगा और
opener
ऑब्जेक्ट का उपयोग करके प्रारंभिक पृष्ठ में कुछ क्रिया करने के लिए पहुंच प्राप्त करेगा (जो अब दिलचस्प DOM को शामिल करता है)।
caution
ध्यान दें कि भले ही प्रारंभिक पृष्ठ दूसरे पृष्ठ को बनाने के बाद एक नए URL तक पहुंचता है, दूसरे पृष्ठ का opener
ऑब्जेक्ट नए DOM में पहले पृष्ठ के लिए अभी भी एक मान्य संदर्भ है।
इसके अलावा, दूसरे पृष्ठ के लिए ओपनर ऑब्जेक्ट का उपयोग करने के लिए दोनों पृष्ठों का एक ही मूल में होना आवश्यक है। यही कारण है कि, इस भेद्यता का दुरुपयोग करने के लिए, आपको कुछ प्रकार का XSS एक ही मूल में खोजने की आवश्यकता है।
Exploitation
- आप इस रूप का उपयोग करके इस प्रकार की भेद्यता का शोषण करने के लिए एक PoC उत्पन्न कर सकते हैं: https://www.someattack.com/Playground/SOMEGenerator
- एक क्लिक के साथ HTML तत्व के लिए DOM पथ खोजने के लिए आप इस ब्राउज़र एक्सटेंशन का उपयोग कर सकते हैं: https://www.someattack.com/Playground/targeting_tool
Example
- आप एक कमजोर उदाहरण https://www.someattack.com/Playground/ में पा सकते हैं।
- ध्यान दें कि इस उदाहरण में सर्वर जावास्क्रिप्ट कोड उत्पन्न कर रहा है और इसे HTML में कॉलबैक पैरामीटर की सामग्री के आधार पर जोड़ रहा है:
<script>opener.{callbacl_content}</script>
। इसलिए इस उदाहरण में आपकोopener
के उपयोग को स्पष्ट रूप से इंगित करने की आवश्यकता नहीं है। - इस CTF लेखन को भी देखें: https://ctftime.org/writeup/36068
References
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।