FixVibe
Covered by FixVibecritical

एसक्यूएल इंजेक्शन: अनधिकृत डेटाबेस एक्सेस को रोकना

SQL इंजेक्शन (SQLi) एक महत्वपूर्ण भेद्यता है जहां हमलावर किसी एप्लिकेशन के डेटाबेस प्रश्नों में हस्तक्षेप करते हैं। दुर्भावनापूर्ण SQL सिंटैक्स को इंजेक्ट करके, हमलावर प्रमाणीकरण को बायपास कर सकते हैं, पासवर्ड और क्रेडिट कार्ड विवरण जैसे संवेदनशील डेटा देख सकते हैं, या यहां तक ​​कि अंतर्निहित सर्वर से समझौता कर सकते हैं।

CWE-89

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

SQL इंजेक्शन (SQLi) एक हमलावर को उन प्रश्नों में हस्तक्षेप करने की अनुमति देता है जो एक एप्लिकेशन अपने डेटाबेस [S1] पर करता है। प्राथमिक प्रभाव में संवेदनशील डेटा जैसे उपयोगकर्ता पासवर्ड, क्रेडिट कार्ड विवरण और व्यक्तिगत जानकारी [S1] तक अनधिकृत पहुंच शामिल है।

डेटा चोरी के अलावा, हमलावर अक्सर डेटाबेस रिकॉर्ड को संशोधित या हटा सकते हैं, जिससे एप्लिकेशन व्यवहार में लगातार बदलाव या डेटा हानि [S1] हो सकती है। उच्च-गंभीरता वाले मामलों में, SQLi को बैक-एंड इंफ्रास्ट्रक्चर से समझौता करने, सेवा से इनकार करने वाले हमलों को सक्षम करने, या संगठन के सिस्टम [S1][S2] में लगातार बैकडोर प्रदान करने के लिए बढ़ाया जा सकता है।

मूल कारण: असुरक्षित इनपुट हैंडलिंग

SQL इंजेक्शन का मूल कारण SQL कमांड [S2] में प्रयुक्त विशेष तत्वों का अनुचित निराकरण है। ऐसा तब होता है जब कोई एप्लिकेशन बाहरी रूप से प्रभावित इनपुट को सीधे क्वेरी स्ट्रिंग [S1][S2] में जोड़कर SQL क्वेरी बनाता है।

क्योंकि इनपुट को क्वेरी संरचना से ठीक से अलग नहीं किया गया है, डेटाबेस दुभाषिया उपयोगकर्ता इनपुट के कुछ हिस्सों को शाब्दिक डेटा [S2] के रूप में मानने के बजाय SQL कोड के रूप में निष्पादित कर सकता है। यह भेद्यता किसी क्वेरी के विभिन्न भागों में प्रकट हो सकती है, जिसमें SELECT स्टेटमेंट, ZXCVFIXVIBTOKEN1ZXCV मान, या UPDATE स्टेटमेंट ZXCVFIXVIBTOKEN4ZXCV शामिल हैं।

ठोस सुधार और शमन

पैरामीटरयुक्त क्वेरीज़ का उपयोग करें

SQL इंजेक्शन को रोकने का सबसे प्रभावी तरीका पैरामीटरयुक्त क्वेरीज़ का उपयोग है, जिसे तैयार कथन [S1] के रूप में भी जाना जाता है। स्ट्रिंग्स को जोड़ने के बजाय, डेवलपर्स को संरचित तंत्र का उपयोग करना चाहिए जो डेटा और कोड [S2] को अलग करने को लागू करता है।

न्यूनतम विशेषाधिकार का सिद्धांत

एप्लिकेशन को अपने कार्यों के लिए आवश्यक न्यूनतम विशेषाधिकारों [S2] का उपयोग करके डेटाबेस से कनेक्ट होना चाहिए। एक वेब एप्लिकेशन खाते के पास प्रशासनिक विशेषाधिकार नहीं होने चाहिए और इसे इसके कार्य [S2] के लिए आवश्यक विशिष्ट तालिकाओं या संचालन तक सीमित रखा जाना चाहिए।

इनपुट सत्यापन और एन्कोडिंग

हालांकि पैरामीटराइजेशन के लिए प्रतिस्थापन नहीं, इनपुट सत्यापन गहराई से सुरक्षा प्रदान करता है [S2]। एप्लिकेशन को एक स्वीकार्य-ज्ञात-अच्छी रणनीति का उपयोग करना चाहिए, यह सत्यापित करते हुए कि इनपुट अपेक्षित प्रकार, लंबाई और प्रारूप [S2] से मेल खाता है।

FixVibe इसका परीक्षण कैसे करता है

FixVibe पहले से ही गेटेड active.sqli स्कैनर मॉड्यूल के माध्यम से SQL इंजेक्शन को कवर करता है। सक्रिय स्कैन केवल डोमेन स्वामित्व सत्यापन और सत्यापन के बाद चलते हैं। चेक क्वेरी पैरामीटर के साथ समान-मूल जीईटी एंडपॉइंट को क्रॉल करता है, बेसलाइन प्रतिक्रिया स्थापित करता है, एसक्यूएल-विशिष्ट बूलियन विसंगतियों की तलाश करता है, और केवल कई विलंब लंबाई में समय की पुष्टि के बाद एक खोज की रिपोर्ट करता है। रिपॉजिटरी स्कैन code.web-app-risk-checklist-backfill के माध्यम से पहले मूल कारण को पकड़ने में भी मदद करता है, जो टेम्पलेट इंटरपोलेशन के साथ निर्मित कच्चे SQL कॉल को चिह्नित करता है।