Bypassing SOP with Iframes - 2
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
In the solution for this challenge, @Strellic_ पिछले अनुभाग के समान एक विधि का प्रस्ताव करता है। चलो इसे देखते हैं।
इस चुनौती में हमलावर को bypass करना है:
यदि वह ऐसा करता है, तो वह एक postmessage भेज सकता है जिसमें HTML सामग्री होगी जो innerHTML
के साथ पृष्ठ में लिखी जाएगी बिना किसी सफाई के (XSS).
पहली जांच को बायपास करने का तरीका है window.calc.contentWindow
को undefined
और e.source
को null
बनाना:
window.calc.contentWindow
वास्तव में document.getElementById("calc")
है। आप document.getElementById
को <img name=getElementById />
के साथ क्लॉबर कर सकते हैं (ध्यान दें कि Sanitizer API -यहाँ- अपने डिफ़ॉल्ट स्थिति में DOM क्लॉबरिंग हमलों से सुरक्षा के लिए कॉन्फ़िगर नहीं की गई है)।
इसलिए, आप document.getElementById("calc")
को <img name=getElementById /><div id=calc></div>
के साथ क्लॉबर कर सकते हैं। फिर, window.calc
undefined
होगा।
अब, हमें e.source
को undefined
या null
होना चाहिए (क्योंकि ==
का उपयोग किया गया है ===
के बजाय, null == undefined
True
है)। इसे प्राप्त करना "आसान" है। यदि आप एक iframe बनाते हैं और इससे एक postMessage भेजते हैं और तुरंत iframe को हटाते हैं, तो e.origin
null
होगा। निम्नलिखित कोड देखें
टोकन के बारे में दूसरी जांच को बायपास करने के लिए token
को मान null
के साथ भेजना और window.token
का मान undefined
बनाना है:
मान null
के साथ postMessage में token
भेजना तुच्छ है।
window.token
को कॉल करते समय getCookie
जो document.cookie
का उपयोग करता है। ध्यान दें कि null
मूल पृष्ठों में document.cookie
तक किसी भी पहुंच से त्रुटि उत्पन्न होती है। इससे window.token
का मान undefined
हो जाएगा।
अंतिम समाधान @terjanq द्वारा निम्नलिखित है:
सीखें और AWS हैकिंग का अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) सीखें और GCP हैकिंग का अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)