SQL इंजेक्शन भेद्यतांसाठी चाचणी

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

स्वयंचलित एसइ एल इंजेक्शन स्कॅनिंग

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

व्यक्तिचलित SQL इंजेक्शन चाचण्या

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

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

http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike

आम्ही असे समजू शकतो की खालील पृष्ठासारख्या क्वेरीचा वापर करून हे पृष्ठ डेटाबेसचे शोध घेते:

डायरेक्टरी येथून फोन निवडा SELECT lastname = 'chapple' आणि firstname = 'mike'

चला यासह थोडा प्रयोग करा. वरील आमच्या धारणासह, आम्ही एसक्ल्यूएल इंजेक्शन आक्रमणे तपासण्यासाठी असलेल्या URL वर एक साधे बदल करू शकतो:

http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike'+and+(select+count(*)+from+fake)+%3e0+OR+'1'%3d'1

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

डिरेक्ट्रीमधून निवडा फोन जेथे lastname = 'chapple' आणि firstname = 'माईक' आणि (नकली पासून संख्या (*) निवडा)> 0 किंवा '1' = '1'

आपण हे दिसेल की वरील वाक्यरचना मूळ URL पेक्षा त्यापेक्षा थोडा भिन्न आहे. मी त्याच्या एएससीआयआय समानार्थित यूआरएल-एन्कोडेड व्हेरिएबलचे रुपांतर स्वतंत्ररित्या घेतल्यामुळे उदाहरणांचे अनुकरण करणे सोपे करते. उदाहरणार्थ,% 3d हे '=' वर्णांसाठी URL- एन्कोडिंग आहे. मी त्याच प्रयोजनार्थ काही ओळ ब्रेक जोडले

परिणामांचे मूल्यांकन

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

त्रुटी: नाव माईक + + + आणि + (+ + + बनावट + + + +) + + 3e0 + किंवा + 1% 3d1 चपळाळसह कोणताही वापरकर्ता आढळला नाही!

दुसरीकडे, जर अनुप्रयोग SQL इंजेक्शनवर असुरक्षित असेल तर तो थेटपणे डेटाबेसला विधानसंदेश देईल, परिणामी दोन पैकी एका शक्यता. प्रथम, आपल्या सर्व्हरवर सक्षम केलेल्या त्रुटी संदेश सक्षम असल्यास (जे आपण करू नये!), आपण असे काहीतरी पाहू शकाल:

ODBC ड्रायव्हर्स त्रुटी '80040e37' [मायक्रोसॉफ्ट] [ओडीबीसी एस क्यू एल सर्व्हर ड्रायव्हर] [एस क्यू एल सर्व्हर] अवैध ऑब्जेक्ट नाव 'बनावट' यासाठी मायक्रोसॉफ्ट ओले डीबी प्रदाता. /directory.asp, ओळ 13

दुसरीकडे, जर आपल्या वेब सर्व्हरवर विस्तृत त्रुटी संदेश प्रदर्शित होत नाहीत, तर आपल्याला अधिक सामान्य त्रुटी मिळेल, जसे की:

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

आपण वरीलपैकी दोन त्रुटींपैकी एक तर प्राप्त केल्यास, आपला अनुप्रयोग एसक्ल्यूएल इंजेक्शन आक्रमणास संवेदनशील आहे! एसक्ल्युएल इंजेक्शन हल्ल्यांविरूद्ध आपल्या अनुप्रयोगांचे संरक्षण करण्यासाठी आपण काही पावले उचलू शकताः