SQL इंजेक्शन सबसे आम वेब अटैक मैकेनिज्म में से एक है जिसका उपयोग हमलावर व्यवसाय या सोशल मीडिया प्लेटफॉर्म से रिकॉर्ड और संवेदनशील रिकॉर्ड चुराने के लिए करते हैं। जबकि SQL इंजेक्शन किसी भी जानकारी को खो सकता है जो एक SQL डेटाबेस का उपयोग करता है, यह वेब वेबसाइटों पर हमला करने के लिए सबसे अधिक उपयोग किया जाता है। SQL इंजेक्शन एक कोड इंजेक्शन तकनीक है जिसका उपयोग हैकर अंतर्निहित SQL डेटाबेस के माध्यम से निष्पादन के लिए इनपुट क्वेरी में दुर्भावनापूर्ण SQL कथन सम्मिलित करने के लिए कर सकते हैं। इच्छुक वेब पैकेजों की अनुचित कोडिंग के कारण इस पद्धति को व्यवहार्य बनाया गया है। उपयोगकर्ता के लिए उपलब्ध कराए गए इनपुट फ़ील्ड की तथ्य पहुंच के कारण SQL इंजेक्शन उगता है, सभी खराब प्रकार के SQL कथन दर्ज करने के लिए डेटाबेस को सीधे क्वेरी करने और सम्मिलित करने के लिए।
आइए इस URL को अपने ब्राउज़र में टाइप करें और तालिका से बोनस श्रेणियां प्राप्त करें:
https://insecure-website.com/products?category=Bonus
यह इस तरह से डेटाबेस से प्रासंगिक व्यापार की जानकारी पुनर्प्राप्त करने के लिए एप्लिकेशन को SQL प्रश्न बनाने का कारण बनता है:
से चयन करें व्यापार कहाँ पे श्रेणी = 'बोनस' तथा जारी किया गया = 1
यह SQL क्वेरी डेटाबेस को वापस जाने के लिए कहती है:
सॉफ़्टवेयर SQL इंजेक्शन हमलों के प्रति किसी भी बचाव को लागू नहीं करता है, इसलिए एक हमलावर एक हमले को इकट्ठा कर सकता है जैसे:
https://insecure-website.com/products?category=Bonus'--
उपरोक्त क्वेरी का परिणाम है:
चुनें * उत्पादों से जहां श्रेणी = 'बोनस'-' और जारी किया गया = 1
यहां मुख्य घटक यह है कि डबल-डैश श्रृंखला - SQL में एक टिप्पणी संकेतक है, और इसका अर्थ है कि शेष प्रश्न की व्याख्या एक टिप्पणी के रूप में की जाती है। यह सफलतापूर्वक शेष क्वेरी से छुटकारा पाता है, इसलिए इसमें अब शामिल नहीं है और लॉन्च किया गया = 1. इस तरह से हर एक उत्पाद प्रदर्शित होता है, जैसे कि रिलीज़ न किए गए उत्पाद।
SQL इंजेक्शन के लिए एक और तरीका:
https://insecure-website.com/products?category=Bonus'+OR+1=1–
परिणाम:
चुनें * उत्पादों से जहां श्रेणी = 'बोनस' या 1 = 1–' और जारी किया गया = 1
उपरोक्त क्वेरी का उपयोग करके आप आसानी से डेटाबेस पर हमला कर सकते हैं।
नीचे दी गई क्वेरी का उपयोग करके लॉगिन खाते को बायपास करें:
से चयन करें उपयोगकर्ताओं कहाँ पे उपयोगकर्ता नाम = 'जॉन' और पासवर्ड = 'जॉनविलियम'
बिना किसी पासवर्ड के उपयोगकर्ता नाम के साथ हमलावर का लॉग, SQL क्वेरी उपयोग में - - डबल डैश पासवर्ड और जहां क्लॉज में टिप्पणी करें। उदाहरण के लिए, उपयोगकर्ता नाम व्यवस्थापक और खाली पासवर्ड फ़ील्ड के लिए एक क्वेरी भेजें। प्रश्न है:
चुनें * उन उपयोगकर्ताओं से जहां उपयोगकर्ता नाम = 'व्यवस्थापक' - - 'और पासवर्ड =
वे SQL इंजेक्शन के लिए भी बहुत सारे तरीके हैं।
लॉगिन पेज में SQL इंजेक्शन के लिए एक साधारण PHP कोड नीचे दिया गया है:
$ uname = $ _POST [' uname ' ] ;
$पासवर्ड = $_POST ['पासवर्ड' ] ;
$query = 'उपयोगकर्ता नाम का चयन करें, उन उपयोगकर्ताओं से पास करें जहां उपयोगकर्ता नाम = ' $unname' और पासवर्ड = ' $passwrd
$ परिणाम = mysql_query ($ क्वेरी);
$ पंक्तियाँ = mysql_fetch_array ($ परिणाम);
अगर ($ पंक्तियाँ)
{
गूंज 'आपने सफलतापूर्वक लॉग इन किया है';
create_session ();
}
अन्य {
गूंज 'बेहतर भाग्य अगली बार';
}