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 का समर्थन करें

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 का समर्थन करें