प्रभाव
एक हमलावर जो क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता का सफलतापूर्वक फायदा उठाता है, वह पीड़ित उपयोगकर्ता के रूप में सामने आ सकता है, उपयोगकर्ता द्वारा अधिकृत किसी भी कार्रवाई को अंजाम दे सकता है, और उपयोगकर्ता के किसी भी डेटा [S1] तक पहुंच सकता है। इसमें खातों को हाईजैक करने के लिए सत्र कुकीज़ चुराना, नकली फॉर्म के माध्यम से लॉगिन क्रेडेंशियल कैप्चर करना, या आभासी विरूपण [S1][S2] करना शामिल है। यदि पीड़ित के पास प्रशासनिक विशेषाधिकार हैं, तो हमलावर एप्लिकेशन और उसके डेटा [S1] पर पूर्ण नियंत्रण प्राप्त कर सकता है।
मूल कारण
XSS तब होता है जब कोई एप्लिकेशन उपयोगकर्ता-नियंत्रणीय इनपुट प्राप्त करता है और इसे उचित न्यूट्रलाइजेशन या एन्कोडिंग [S2] के बिना वेब पेज में शामिल करता है। यह इनपुट को पीड़ित के ब्राउज़र द्वारा सक्रिय सामग्री (जावास्क्रिप्ट) के रूप में व्याख्या करने की अनुमति देता है, जो वेबसाइटों को एक दूसरे से अलग करने के लिए डिज़ाइन की गई समान मूल नीति [S1][S2] को दरकिनार करता है।
भेद्यता प्रकार
- प्रतिबिंबित XSS: दुर्भावनापूर्ण स्क्रिप्ट वेब एप्लिकेशन से पीड़ित के ब्राउज़र पर प्रतिबिंबित होती हैं, आमतौर पर URL पैरामीटर [S1] के माध्यम से।
- संग्रहीत XSS: स्क्रिप्ट को स्थायी रूप से सर्वर पर संग्रहीत किया जाता है (उदाहरण के लिए, डेटाबेस या टिप्पणी अनुभाग में) और बाद में उपयोगकर्ताओं को [S1][S2] प्रदान किया जाता है।
- DOM-आधारित XSS: भेद्यता पूरी तरह से क्लाइंट-साइड कोड में मौजूद है जो एक अविश्वसनीय स्रोत से डेटा को असुरक्षित तरीके से संसाधित करता है, जैसे ZXCVFIXVIBTOKEN0ZXCV [S1] पर लिखना।
ठोस सुधार
- आउटपुट पर डेटा एनकोड करें: रेंडर करने से पहले उपयोगकर्ता-नियंत्रणीय डेटा को एक सुरक्षित रूप में परिवर्तित करें। HTML बॉडी के लिए HTML इकाई एन्कोडिंग का उपयोग करें, और उन विशिष्ट संदर्भों के लिए उपयुक्त JavaScript या CSS एन्कोडिंग का उपयोग करें [S1][S2]।
- आगमन पर फ़िल्टर इनपुट: अपेक्षित इनपुट प्रारूपों के लिए सख्त अनुमति सूची लागू करें और जो कुछ भी [S1][S2] के अनुरूप नहीं है उसे अस्वीकार कर दें।
- सुरक्षा हेडर का उपयोग करें: जावास्क्रिप्ट [S2] के माध्यम से पहुंच को रोकने के लिए सत्र कुकीज़ पर
HttpOnlyध्वज सेट करें। यह सुनिश्चित करने के लिए कि ब्राउज़र निष्पादन योग्य कोड [S1] के रूप में प्रतिक्रियाओं की गलत व्याख्या न करें,Content-TypeऔरX-Content-Type-Options: nosniffका उपयोग करें। - सामग्री सुरक्षा नीति (CSP): उन स्रोतों को प्रतिबंधित करने के लिए एक मजबूत ZXCVFIXVIBTOKEN3ZXCV तैनात करें, जहां से स्क्रिप्ट लोड और निष्पादित की जा सकती हैं, एक रक्षा-गहराई परत [S1]ZXCVFIXVIBTOKEN1ZXCV प्रदान करता है।
FixVibe इसका परीक्षण कैसे करता है
FixVibe स्थापित स्कैनिंग पद्धतियों [S1] पर आधारित बहुस्तरीय दृष्टिकोण के माध्यम से XSS का पता लगा सकता है:
- निष्क्रिय स्कैन:
Content-Security-Policyया ZXCVFIXVIBTOKEN1ZXCV जैसे गुम या कमजोर सुरक्षा हेडर की पहचान करना जो XSS [S1] को कम करने के लिए डिज़ाइन किए गए हैं। - सक्रिय जांच: यूआरएल पैरामीटर और फॉर्म फ़ील्ड में अद्वितीय, गैर-दुर्भावनापूर्ण अल्फ़ान्यूमेरिक स्ट्रिंग्स को इंजेक्ट करना ताकि यह निर्धारित किया जा सके कि क्या वे उचित एन्कोडिंग [S1] के बिना प्रतिक्रिया निकाय में प्रतिबिंबित होते हैं।
- रेपो स्कैन: "सिंक" के लिए क्लाइंट-साइड जावास्क्रिप्ट का विश्लेषण करना जो अविश्वसनीय डेटा को असुरक्षित रूप से संभालता है, जैसे ZXCVFIXVIBTOKEN0ZXCV, ZXCVFIXVIBTOKEN1ZXCV, या ZXCVFIXVIBTOKEN2ZXCV, जो DOM-आधारित ZXCVFIXVIBTOKEN4ZXCV के सामान्य संकेतक हैं [S1].
