Bypassing SOP with Iframes - 2
Iframes in SOP-2
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 द्वारा निम्नलिखित है:
Last updated