Iframes in XSS, CSP and SOP
XSS में Iframes
एक iframed पेज की सामग्री को दिखाने के लिए 3 तरीके हैं:
src
के माध्यम से एक URL को दिखाना (URL cross origin या same origin हो सकता है)data:
प्रोटोकॉल का उपयोग करके सामग्री को दिखानाsrcdoc
के माध्यम से सामग्री को दिखाना
माता और बालक वेरिएबल्स तक पहुंचना
यदि आप http सर्वर के माध्यम से पिछले html तक पहुंचते हैं (जैसे python3 -m http.server
), तो आप देखेंगे कि सभी स्क्रिप्ट्स क्रियान्वित हो जाएंगे (क्योंकि इसे रोकने वाला कोई CSP नहीं है)। माता-पिता आइफ्रेम के भीतर secret
वेरिएबल तक पहुंच नहीं पाएंगे और केवल आदिक आइफ्रेम्स if2 और if3 (जो समान-स्थलीय माने जाते हैं) मूल विंडो में रहस्य तक पहुंच सकते हैं।
ध्यान दें कि if4 को null
मूल स्थान माना जाता है।
CSP के साथ आइफ्रेम
कृपया ध्यान दें कि निम्नलिखित बायपास में जबाब आइफ्रेम पृष्ठ को कोई भी CSP हेडर नहीं है जो JS क्रियान्वयन को रोकता है।
script-src
का self
मान JS को data:
प्रोटोकॉल या srcdoc
विशेषता का उपयोग करके कोड क्रियान्वित करने की अनुमति नहीं देगा।
हालांकि, CSP का none
मान भी उन आइफ्रेम्स को क्रियान्वित करने देगा जो src
विशेषता में URL (पूरा या केवल पथ) डालते हैं।
इसलिए किसी पृष्ठ की CSP को बायपास करना संभव है:
नोट करें कि पिछला सीएसपी केवल इनलाइन स्क्रिप्ट का निषेध करता है।
हालांकि, केवल if1
और if2
स्क्रिप्ट को निष्पादित किया जाएगा लेकिन केवल if1
माता सीक्रेट तक पहुंच सकेगा।
इसलिए, यदि आप सर्वर पर एक JS फ़ाइल अपलोड कर सकते हैं और इसे आईफ्रेम के माध्यम से लोड कर सकते हैं, तो एक सीएसपी को छलना संभव है, भले ही script-src 'none'
हो। यह समान साइट JSONP एंडपॉइंट का दुरुपयोग करके भी संभव है।
आप इसे निम्नलिखित परिदृश्य के साथ परीक्षण कर सकते हैं जहां एक कुकी चोरी की जाती है, भले ही script-src 'none'
हो। बस एप्लिकेशन को चलाएं और अपने ब्राउज़र के साथ इसका उपयोग करें:
जंगल में पाए गए अन्य पेलोड
आईफ्रेम सैंडबॉक्स
आईफ्रेम के भीतर की सामग्री को sandbox
विशेषता का उपयोग करके अतिरिक्त प्रतिबंधों के लिए विचाराधीन किया जा सकता है। डिफ़ॉल्ट रूप से, इस विशेषता का उपयोग नहीं होता है, जिसका मतलब है कि कोई प्रतिबंध नहीं हैं।
जब इस्तेमाल किया जाता है, sandbox
विशेषता कई प्रतिबंध लागू करती हैं:
सामग्री को एक अद्वितीय स्रोत से उत्पन्न माना जाता है।
किसी भी प्रपत्र को सबमिट करने का प्रयास रोका जाता है।
स्क्रिप्ट का क्रियान्वयन निषिद्ध है।
कुछ एपीआई तक पहुंच बंद है।
यह लिंक को अन्य ब्राउज़िंग संदर्भों के साथ बातचीत करने से रोकता है।
<embed>
,<object>
,<applet>
या समान टैग के माध्यम से प्लगइन का उपयोग अनुमति नहीं है।सामग्री के शीर्ष-स्तर ब्राउज़िंग संदर्भ की संदर्भीकरण को रोका जाता है।
विशेषताएँ जो स्वचालित रूप से प्रेरित होती हैं, जैसे वीडियो प्लेबैक या फॉर्म नियंत्रणों का स्वचालित रूप से ब्लॉक किया जाता है।
विशेषता का मान खाली छोड़ा जा सकता है (sandbox=""
) ताकि सभी पूर्ववर्तित प्रतिबंध लागू हों। वैकल्पिक रूप से, इसे कुछ विशेष मूल्यों की एक अंतरिक्ष से आईफ्रेम को विशेष प्रतिबंधों से मुक्त करने के लिए एक अंतरिक्ष से बाहर छोड़ सकते हैं।
Iframes in SOP
निम्नलिखित पृष्ठों की जाँच करें:
pageBypassing SOP with Iframes - 1pageBypassing SOP with Iframes - 2pageBlocking main page to steal postmessagepageSteal postmessage modifying iframe locationLast updated