एसक्यूएल इंजेक्शन हमलों में आवेदन करने के लिए क्लाइंट इनपुट के माध्यम से एसक्यूएल प्रश्नों को डालने या "इंजेक्शन" शामिल है। इस प्रकार के एक सफल हमले का उपयोग डेटाबेस से संवेदनशील जानकारी पढ़ने और इसे संशोधित या हटाने के लिए किया जा सकता है। सबसे चरम मामलों में, यह आपको सिस्टम कमांड जारी करने की अनुमति देता है।
निम्नलिखित कोड का एक खतरनाक टुकड़ा है जिसका उपयोग एसक्यूएल इंजेक्शन हमले को करने के लिए किया जा सकता है:
उपयोगकर्ताओं से * चुनें जहां नाम = उपयोगकर्ता नाम;
वेरिएबल"यूजरनेम"उपयोगकर्ता से प्राप्त किया जाता है। यदि कोई हमलावर अपने उपयोगकर्ता नाम के रूप में 'या' 1 '='1' का नाम देता है, तो यह सही उपयोगकर्ता नाम को चुनने के लिए मजबूर करेगा क्योंकि अभिव्यक्ति '1' = '1' हमेशा सच है।
आप एसक्यूएल इंजेक्शनकमजोरियों का परीक्षण करने के लिए sqlmap नामक उपकरण का उपयोग कर सकते हैं, जो स्वचालित रूप से एसक्यूएल प्रश्नों को इंजेक्ट करने की क्षमता को खोजने और उपयोग करने में सक्षम है। यह छह वर्ग इंजेक्शन तकनीकोंका समर्थन करता है: तर्क आधारित, अंधा, त्रुटि आधारित, संघप्रश्न, संचयी प्रश्न, और OOB हमले। आपको MySQL, ओरेकल, पोस्टग्रेस्क एल, माइक्रोसॉफ्ट एसक्यूएल सर्वर, माइक्रोसॉफ्ट एक्सेस, आईबीएम डीबी2, एसक्यूलाइट, फायरबर्ड, सिबेस, एसएपी मैक्सडीबी, एचएसक्यूएलबी और इन्यूसिक्स डेटाबेस पर हमला करने की अनुमति देता है।
नीचे दिया गया आंकड़ा sqlmap का उपयोग करने काएक उदाहरण दिखाता है, जिसने हेरिस्टिक परीक्षणों का उपयोग करते हुए पता लगाया कि जांच की जा रही क्वेरी में आईडी पैरामीटर वर्ग इंजेक्शन हमले की चपेट में आ सकता है।