Breaking

Post Top Ad

Your Ad Spot

Thursday, September 5, 2019

SQL injection

 तो आ गए आप कैसे हो उम्मीद है ठीक होंगे आज हम बाते करेंगे sql इंजेक्शन के बारे में तो चलिए बिना टाइम गवाए सुरु करते है अपना ज्ञान | 

 Note ये sql इंजेक्शन का पैहला Lession है

इस Section में, हम बताएंगे कि SQL इंजेक्शन क्या है, कुछ सामान्य Examples का Character , बताएँगे कि विभिन्न प्रकार की SQL इंजेक्शन कमजोरियों को कैसे ढूंढें और उनका Exploitation करें, और brief में बताएँगे कि SQL इंजेक्शन को कैसे रोका जाए।

What is SQL injection (SQLi)?

SQL इंजेक्शन एक वेब सुरक्षा Vulnerability है जो एक हमलावर को उन सवालों के साथ Interference करने की अनुमति देता है जो एक application अपने डेटाबेस में करता है। यह आम तौर पर एक हमलावर को डेटा देखने की अनुमति देता है जो वे सामान्य रूप से Recovered करने में capable नहीं होते हैं।
इसमें अन्य Users या किसी अन्य डेटा से संबंधित डेटा शामिल हो सकता है, जो एप्लिकेशन स्वयं एक्सेस करने में सक्षम है। कई मामलों में, एक हमलावर इस डेटा को Revised या हटा सकता है, जिससे एप्लिकेशन की सामग्री या व्यवहार में लगातार परिवर्तन हो सकते हैं।
कुछ स्थितियों में, एक हमलावर Inherent सर्वर या अन्य बैक-एंड इन्फ्रास्ट्रक्चर से समझौता करने के लिए एक SQL इंजेक्शन हमले को बढ़ा सकता है, या एक denial-of-service हमले कर सकता है।


What is the impact of a successful SQL injection attack?

 एक सफल SQL इंजेक्शन हमले के Consequently sensitive डेटा, जैसे पासवर्ड, क्रेडिट कार्ड विवरण या व्यक्तिगत Users जानकारी तक Unauthorized पहुंच हो सकती है। हाल के वर्षों में कई हाई-प्रोफाइल डेटा Violations के resulting SQL इंजेक्शन के हमले हुए, जिससे Reputed damage और नियामक जुर्माना हुआ। कुछ मामलों में, एक हमलावर एक संगठन के सिस्टम में लगातार पिछले दरवाजे को प्राप्त कर सकता है, जिससे एक Long term समझौता हो सकता है जो एक Extended period के लिए किसी का ध्यान नहीं जा सकता है।

SQL injection examples

 SQL इंजेक्शन Vulnerabilities, हमलों, और तकनीकों की एक Wide variety है, जो विभिन्न स्थितियों में उत्पन्न होती हैं। कुछ सामान्य SQL इंजेक्शन उदाहरणों में शामिल हैं:
  • छिपे हुए डेटा को पुनः प्राप्त करना, जहां आपAdditional results वापस करने के लिए SQL क्वेरी को Revised कर सकते हैं।
  • एप्लिकेशन Logic को बदलना, जहां आप एप्लिकेशन के Logic को Interrupted करने के लिए एक क्वेरी को बदल सकते हैं।
  • यूनिअन हमले, जहाँ आप विभिन्न डेटाबेस tables से डेटा पुनः प्राप्त कर सकते हैं।
  • डेटाबेस की जांच करना, जहां आप डेटाबेस के Edition और संरचना के बारे में जानकारी निकाल सकते हैं।
  • ब्लाइंड SQL इंजेक्शन, जहां आपके द्वारा Controlled क्वेरी के परिणाम एप्लिकेशन की जिम्मेदारी में वापस नहीं आते हैं 
 

    Retrieving hidden data

    एक Shopping एप्लिकेशन पर विचार करें जो विभिन्न Categories में products को Displayed करता है। जब Users उपहार category पर क्लिक करता है, तो उनका ब्राउज़र URL का अनुरोध करता है:
    https://insecure-website.com/products?category=Gifts 
    यह डेटाबेस से संबंधित Product के विवरण को पुनः प्राप्त करने के लिए SQL क्वेरी बनाने के लिए Applications का कारण बनता है:
    SELECT * FROM products WHERE category = 'Gifts' AND released = 1
    यह SQL क्वेरी डेटाबेस को वापस लौटने के लिए कहता है:

    •  सभी Details (*)
    • Product की Table से
    • जहाँ Category उपहार है
    • और released 1 है।
    जारी किए गए restriction = 1 का उपयोग उन products को छिपाने के लिए किया जा रहा है जो जारी नहीं किए गए हैं। Unrelated products के लिए, Possibly जारी = 0।

    एप्लिकेशन SQL इंजेक्शन हमलों के खिलाफ किसी भी बचाव को लागू नहीं करता है, इसलिए एक हमलावर एक हमले का निर्माण कर सकता है:

    https://insecure-website.com/products?category=Gifts'--

    SQL क्वेरी में यह result है:
    SELECT * FROM products WHERE category = 'Gifts'--' AND released = 1
    यहाँ मुख्य बात यह है कि double-dash sequence -- Sql में एक Comment Indicators है, और इसका मतलब है कि remainder क्वेरी की Explanation एक Comment के रूप में की जाती है। यह प्रभावी रूप से क्वेरी के remainder को हटा देता है, इसलिए इसमें अब शामिल नहीं है और जारी किया गया है = 1. इसका मतलब है कि सभी उत्पाद Displayed नहीं होते हैं, जिसमें Unmanaged product भी शामिल हैं।
    आगे जाकर, एक हमलावर किसी भी category में सभी उत्पादों को Displayed करने के लिए एप्लिकेशन का कारण बन सकता है, जिसमें उन Categories को भी शामिल है जिनके बारे में वे नहीं जानते हैं:
    https://insecure-website.com/products?category=Gifts'+OR+1=1--

    SQL क्वेरी में यह परिणाम है: 

    SELECT * FROM products WHERE category = 'Gifts' OR 1=1--' AND released = 1
    Revised क्वेरी सभी आइटम वापस कर देगी जहां या तो category उपहार है, या 1 1 के बराबर है। चूंकि 1 = 1 हमेशा True होता है, क्वेरी सभी आइटम वापस कर देगी।

    अब हम अगले sql  इंजेक्शन के पोस्ट में ये सारे टॉपिक कवर करेंगे

    1. Subverting application logic
    2. Retrieving data from other database tables
    3. Examining the database
    4. Blind SQL injection vulnerabilities
    5. How to detect SQL injection vulnerabilities
    6. SQL injection in different parts of the query
    7. Second-order SQL injection
    8. Database-specific factors
    9. How to prevent SQL injection

    No comments:

    Post a Comment

    Post Top Ad

    Your Ad Spot