Server Side Inclusion/Edge Side Inclusion Injection
सर्वर साइड समावेश मूल जानकारी
(परिचय एपाची डॉक्स से लिया गया)
SSI (सर्वर साइड इंक्लूड) निर्देशिकाएं हैं जो HTML पेज में रखी जाती हैं, और सर्वर पर मूल्यांकन की जाती हैं जब पेज सेवा की जा रही होती हैं। ये आपको मौजूदा HTML पेज में डायनामिक उत्पन्न सामग्री जोड़ने की अनुमति देती हैं, बिना किसी सीजीआई कार्यक्रम या अन्य गतिशील प्रौद्योगिकी के माध्यम से पूरे पेज की सेवा करने की आवश्यकता के बिना। उदाहरण के लिए, आप एक मौजूदा HTML पेज में निर्देशिका डाल सकते हैं, जैसे:
<!--#echo var="DATE_LOCAL" -->
और, जब पेज सेवा की जाती है, यह टुकड़ा मूल्यांकित किया जाएगा और इसके मूल्य से बदल दिया जाएगा:
Tuesday, 15-Jan-2013 19:28:54 EST
SSI का उपयोग कब करना है, और कब किसी कार्यक्रम द्वारा पूरा पेज उत्पन्न करना है, आम तौर पर पेज कितना स्थिर है, और कितना हर बार पेज सेवा किया जाता है, यह एक मामला होता है। SSI एक छोटे टुकड़ों की जानकारी जोड़ने का एक बड़ा तरीका है, जैसे कि वर्तमान समय - ऊपर दिखाया गया है। लेकिन यदि आपके पेज का अधिकांश समय पर सेवा किया जा रहा है, तो आपको किसी अन्य समाधान की तलाश करनी चाहिए।
आप SSI की मौजूदगी का अनुमान लगा सकते हैं अगर वेब एप्लिकेशन फ़ाइलों का उपयोग करती है जिनमें एक्सटेंशन हैं ** .shtml
, .shtm
या .stm
**, लेकिन यह केवल एक मामला नहीं है।
एक सामान्य SSI अभिव्यक्ति का निम्नलिखित प्रारूप होता है:
जाँच
Edge Side Inclusion
एक समस्या है जानकारी कैशिंग या गतिशील एप्लिकेशन के रूप में, क्योंकि सामग्री का हिस्सा भविष्य में भिन्न हो सकता है जब सामग्री को पुनः प्राप्त किया जाता है। यह है जिसके लिए ESI का उपयोग किया जाता है, ESI टैग का उपयोग करके गतिशील सामग्री को सृजित करने की आवश्यकता को इंडिकेट करने के लिए। अगर हमलावर किसी भी तरह से कैश सामग्री में एक ESI टैग इंजेक्ट कर सकता है, तो, उसे संभावित हो सकता है कि वह उपयोगकर्ताओं को भेजने से पहले दस्तावेज़ पर अर्बिट्रेरी सामग्री इंजेक्ट कर सकता है।
ESI Detection
निम्नलिखित हेडर एक सर्वर से प्रतिक्रिया में यह दिखाता है कि सर्वर ESI का उपयोग कर रहा है:
यदि आप इस हैडर को नहीं ढूंढ पा रहे हैं, तो सर्वर शायद ESI का उपयोग कर रहा हो। एक अंधा शोषण दृष्टिकोण भी उपयोग किया जा सकता है क्योंकि एक अनुरोध हमलावर के सर्वर पर पहुंचना चाहिए:
ESI शोषण
GoSecure ने एक तालिका बनाया था ताकि हम समझ सकें कि विभिन्न ESI-सक्षम सॉफ्टवेयर के खिलाफ हम किस प्रकार के हमले कर सकते हैं, जो उनकी समर्थन की आधार पर निर्भर करता है:
Includes:
<esi:includes>
निर्देशिका का समर्थन करता हैVars:
<esi:vars>
निर्देशिका का समर्थन करता है। XSS फ़िल्टर को छलने के लिए उपयुक्त हैCookie: दस्तावेज़ कुकी ESI इंजन के लिए पहुंचनीय हैं
Upstream Headers Required: उच्चस्थान एप्लिकेशन ESI वक्तव्यों को प्रसंस्कृत नहीं करेगा जब तक उपस्थित एप्लिकेशन हेडर प्रदान नहीं करता
Host Allowlist: इस मामले में, ESI शामिल केवल अनुमति प्राप्त सर्वर होस्ट से संभव हैं, जिससे SSRF, उदाहरण के लिए, केवल उन होस्ट के खिलाफ संभव हैं
सॉफ्टवेयर | Includes | Vars | Cookies | Upstream Headers Required | Host Whitelist |
Squid3 | हाँ | हाँ | हाँ | हाँ | नहीं |
Varnish Cache | हाँ | नहीं | नहीं | हाँ | हाँ |
Fastly | हाँ | नहीं | नहीं | नहीं | हाँ |
Akamai ESI Test Server (ETS) | हाँ | हाँ | हाँ | नहीं | नहीं |
NodeJS esi | हाँ | हाँ | हाँ | नहीं | नहीं |
NodeJS nodesi | हाँ | नहीं | नहीं | नहीं | वैकल्पिक |
XSS
निम्नलिखित ESI निर्देशिका सर्वर के प्रतिक्रिया में एक अनिश्चित फ़ाइल लोड करेगा
क्लाइंट XSS सुरक्षा को छलकरना
कुकी चुराना
रिमोट कुकी चुराना
XSS के माध्यम से HTTP_ONLY कुकी चुराएं उसे प्रतिक्रिया में परावर्तित करके:
निजी स्थानीय फ़ाइल
इसे "स्थानीय फ़ाइल समावेश" से गलती से न मिलाएं:
CRLF
CRLF का पूरा नाम "Carriage Return Line Feed" है।
ओपन रीडायरेक्ट
निम्नलिखित उत्तर में Location
हेडर जोड़ दिया जाएगा
शीर्षक जोड़ें
मजबूर किए गए अनुरोध में शीर्षक जोड़ें
उत्तर में हैडर जोड़ें (जो "Content-Type: text/json" को छलकरने के लिए उपयोगी है)
CRLF में हेडर जोड़ें (CVE-2019-2438)
अकामाई डीबग
यह जवाब में शामिल डीबग जानकारी भेजेगा:
ESI + XSLT = XXE
डीसीए पैरामीटर के लिए xslt
मान निर्दिष्ट करके, eXtensible Stylesheet Language Transformations (XSLT)
पर आधारित ESI शामिल करना संभव है। इस समावेशन से HTTP सरोगेट XML और XSLT फ़ाइलें पुनः प्राप्त करता है, जिसमें दूसरे को फ़िल्टर करता है। ऐसी XML फ़ाइलें XML External Entity (XXE) हमलों के लिए उपयोगी होती हैं, जो हमलावरों को SSRF हमले को क्रियान्वित करने की अनुमति देती हैं। हालांकि, इस दृष्टिकोण की उपयोगिता सीमित है क्योंकि ESI पहले से ही एक SSRF वेक्टर के रूप में काम करते हैं। अंडरलाइंग Xalan पुस्तकालय में समर्थन की अभाव के कारण, बाह्य DTD प्रसंस्करण नहीं होता, स्थानीय फ़ाइल निकालने को रोकते हुए।
XSLT फ़ाइल:
एक्सएसएलटी पेज की जाँच करें:
pageXSLT Server Side Injection (Extensible Stylesheet Language Transformations)संदर्भ
ब्रूट-फोर्स पहचान सूची
Last updated