CSP bypass: self + 'unsafe-inline' with Iframes
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)
एक कॉन्फ़िगरेशन जैसे:
कोई भी फ़ंक्शन जो स्ट्रिंग के रूप में भेजे गए कोड को निष्पादित करता है, के उपयोग पर प्रतिबंध है। उदाहरण के लिए: eval, setTimeout, setInterval
सभी को सेटिंग unsafe-eval
के कारण ब्लॉक कर दिया जाएगा।
बाहरी स्रोतों से कोई भी सामग्री भी ब्लॉक की जाती है, जिसमें चित्र, CSS, WebSockets, और विशेष रूप से, JS शामिल हैं।
यह देखा गया है कि आधुनिक ब्राउज़र चित्रों और टेक्स्ट को HTML में परिवर्तित करते हैं ताकि उनकी प्रदर्शनी को बढ़ाया जा सके (जैसे, पृष्ठभूमि सेट करना, केंद्रित करना, आदि)। परिणामस्वरूप, यदि किसी चित्र या टेक्स्ट फ़ाइल, जैसे favicon.ico
या robots.txt
, को iframe
के माध्यम से खोला जाता है, तो इसे HTML के रूप में प्रस्तुत किया जाता है। विशेष रूप से, इन पृष्ठों में अक्सर CSP हेडर की कमी होती है और इनमें X-Frame-Options शामिल नहीं हो सकते हैं, जिससे इनसे मनमाने JavaScript का निष्पादन संभव हो जाता है:
इसी तरह, त्रुटि प्रतिक्रियाएँ, जैसे टेक्स्ट फ़ाइलें या चित्र, आमतौर पर CSP हेडर के बिना आती हैं और X-Frame-Options को छोड़ सकती हैं। त्रुटियों को एक iframe के भीतर लोड करने के लिए प्रेरित किया जा सकता है, जिससे निम्नलिखित क्रियाएँ संभव होती हैं:
किसी भी उल्लेखित परिदृश्य को ट्रिगर करने के बाद, iframe के भीतर JavaScript निष्पादन इस प्रकार संभव है:
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)