FixVibe
Covered by FixVibecritical

SQL इंजेक्शन: अनधिकृत डेटाबेस ऍक्सेस प्रतिबंधित करणे

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

CWE-89

SQL इंजेक्शनचा प्रभाव

SQL इंजेक्शन (SQLi) आक्रमणकर्त्याला ऍप्लिकेशनने त्याच्या डेटाबेस [S1] मध्ये केलेल्या क्वेरींमध्ये हस्तक्षेप करण्यास अनुमती देते. प्राथमिक परिणामामध्ये वापरकर्ता संकेतशब्द, क्रेडिट कार्ड तपशील आणि वैयक्तिक माहिती [S1] यासारख्या संवेदनशील डेटावर अनधिकृत प्रवेश समाविष्ट आहे.

डेटा चोरीच्या पलीकडे, आक्रमणकर्ते अनेकदा डेटाबेस रेकॉर्ड सुधारित किंवा हटवू शकतात, ज्यामुळे ऍप्लिकेशनच्या वर्तनात सतत बदल होतात किंवा [S1] डेटा गमावतात. उच्च-तीव्रतेच्या प्रकरणांमध्ये, SQLi बॅक-एंड इन्फ्रास्ट्रक्चरशी तडजोड करण्यासाठी, सेवा नाकारणे सक्षम करण्यासाठी किंवा संस्थेच्या प्रणालींमध्ये सतत बॅकडोअर प्रदान करण्यासाठी वाढवले ​​जाऊ शकते

मूळ कारण: असुरक्षित इनपुट हाताळणी

SQL इंजेक्शनचे मूळ कारण म्हणजे SQL कमांड [S2] मध्ये वापरलेल्या विशेष घटकांचे अयोग्य तटस्थीकरण आहे. जेव्हा ऍप्लिकेशन बाहेरून-प्रभावित इनपुट थेट [S1][S2] मध्ये एकत्रित करून SQL क्वेरी तयार करतो तेव्हा असे होते.

क्वेरी स्ट्रक्चरमधून इनपुट योग्यरित्या विलग न केल्यामुळे, डेटाबेस इंटरप्रिटर वापरकर्ता इनपुटचे काही भाग हे अक्षरशः डेटा [S2] म्हणून हाताळण्याऐवजी SQL कोड म्हणून कार्यान्वित करू शकतो. ही भेद्यता SELECT स्टेटमेंट्स, INSERT व्हॅल्यूज किंवा UPDATE स्टेटमेंट्स [S1] सह क्वेरीच्या विविध भागांमध्ये प्रकट होऊ शकते.

ठोस निराकरणे आणि कमी करणे

पॅरामीटराइज्ड क्वेरी वापरा

एसक्यूएल इंजेक्शन रोखण्याचा सर्वात प्रभावी मार्ग म्हणजे पॅरामीटराइज्ड क्वेरीचा वापर, ज्याला तयार स्टेटमेंट्स [S1] म्हणून देखील ओळखले जाते. स्ट्रिंग जोडण्याऐवजी, डेव्हलपरने संरचित यंत्रणा वापरावी जी डेटा आणि कोड [S2] वेगळे करण्याची अंमलबजावणी करतात.

किमान विशेषाधिकाराचे तत्व

अनुप्रयोगांनी [S2] त्यांच्या कार्यांसाठी आवश्यक असलेले सर्वात कमी विशेषाधिकार वापरून डेटाबेसशी कनेक्ट केले पाहिजे. वेब ऍप्लिकेशन खात्याला प्रशासकीय विशेषाधिकार नसावेत आणि ते त्याच्या [S2] कार्यासाठी आवश्यक असलेल्या विशिष्ट टेबल्स किंवा ऑपरेशन्सपुरते मर्यादित असावे.

इनपुट प्रमाणीकरण आणि एन्कोडिंग

पॅरामीटरायझेशनसाठी बदली नसताना, इनपुट प्रमाणीकरण [S2] सखोल संरक्षण प्रदान करते. इनपुट अपेक्षित प्रकार, लांबी आणि स्वरूप [S2] शी जुळत असल्याचे सत्यापित करून, अनुप्रयोगांनी स्वीकार-ज्ञात-चांगली रणनीती वापरली पाहिजे.

त्यासाठी FixVibe चाचण्या कशा करतात

FixVibe आधीच गेट केलेल्या active.sqli स्कॅनर मॉड्यूलद्वारे SQL इंजेक्शन कव्हर करते. सक्रिय स्कॅन केवळ डोमेन मालकी पडताळणी आणि प्रमाणीकरणानंतर चालतात. चेक क्वेरी पॅरामीटर्ससह समान-उत्पत्ति GET एंडपॉइंट्स क्रॉल करतो, बेसलाइन प्रतिसाद स्थापित करतो, SQL-विशिष्ट बुलियन विसंगती शोधतो आणि एकाधिक विलंब लांबीमध्ये वेळेची पुष्टी केल्यानंतर केवळ शोधाचा अहवाल देतो. रेपॉजिटरी स्कॅन code.web-app-risk-checklist-backfill द्वारे मूळ कारण शोधण्यात देखील मदत करतात, जे टेम्पलेट इंटरपोलेशनसह तयार केलेले कच्चे SQL कॉल फ्लॅग करते.