1. المدير العام

    المدير العام أدارة موقع أكتب كود

    شرح طريقة أكتشاف ثغرة SQL Injection
    [​IMG]
    مثال عملي لاكتشاف ثغرة SQL Injection
    لنفرض أن هناك موقع تسوق يعرض منتجات مختلفة
    وافرض أنك قمت بالضغط على معرض الهدايا وتم عرض هذا الرابط
    كود:
    https://website.com/products?category=Gifts
    في هذه الحاله يقوم التطبيق (الموقع الإلكتروني ) بعملية استعلام من قاعدة البيانان لاسترجاع النتائج التي قمت باختيارها .
    كود:
    SELECT * FROM products WHERE category = 'Gifts' AND released = 1
    ال SQL guery يطلب من قاعدة البيانات:
    • all details (*)
    • from the products table
    • where the category is Gifts
    • and released is 1.
    تم إصدار القيد = 1 ويتم استخدامه لإخفاء المنتجات التي لم يتم إصدارها من قاعدةالبيانات.
    بالنسبة للمنتجات التي لم يتم طرحها ، يُفترض أنه تم إصدارها = 0.
    وفي هذا المثال التطبيق لا يحتوي على دفاعات ضد هجمات SQL Injection, ويمكن للمهاجم إنشاء هجوم كالآتي:
    كود:
    https://website.com/products?category=Gifts'--
    تكون نتيحة الاستعلام:
    كود:
    SELECT * FROM products WHERE category = 'Gifts'--' AND released = 1
    المهاجم استخدم الشرطة المزدوجة - - وهو مؤشر تعليق في SQL، ويعني أن باقي الاستعلام يتم تفسيره على أنه تعليق.
    و يؤدي هذا إلى إزالة ما تبقى من الاستعلام بشكل فعال.
    وهذا يعني أنه سوف يتم عرض جميع المنتجات ، بما في ذلك المنتجات التي لم يتم طرحها.
    وفي هذه الحاله يمكن للمهاجم أن يتسبب في عرض جميع المنتجات في أي فئة ، بما في ذلك الفئات التي لا يعرفون عنها:
    كود:
    https://website.com/products?category=Gifts'+OR+1=1--
    النتيجة في كود sql للاستعلام تكون
    كود:
    SELECT * FROM products WHERE category = 'Gifts' OR 1=1--' AND released = 1
    سيعيد الاستعلام المعدل في الرابط الخاص بالموقع جميع العناصر حيث تكون الفئة هدايا ، أو 1 تساوي 1. نظرًا لأن 1 = 1 تكون دائمًا صحيحة ، فسيعيد الاستعلام جميع العناصر.
    هكذا يتم استغلال المواقع المصابة بثغرة SQL Injection
    هذا المثال فقط للتوضيح ويمكن استخدامه لعرض ملفات حساسة او خاصة بالمستخدمين، ولا ننسى أن هناك أنواع كثيرة من هذه الثغرات وبعض الأحيان يكون المبرمج قد أصلح هذا الخطأ ببعض الأكواد وأحيانا يستطيع المهاجم تمرير هجومة بطريقة جديدة.
    Automation Tools for SQL Injection
    في المثال أعلاه ، استخدمنا تقنيات الهجوم اليدوي بناءً على معرفتنا الواسعة بـ SQL.
    هناك أدوات آلية يمكنها مساعدتك في تنفيذ الهجمات بكفاءة أكبر وفي أقصر وقت ممكن. وتشمل هذه الأدوات
    SQLMap
    http://sqlmap.org
    SQL Injection
    https://tools.kali.org/vulnerability-analysis/jsql
    لا يمكنك معرفة المواقع المصابة وعرض البيانات الا عن طريق المحاولة عدة مرات وبطرق مختلفة يدويا أو عن طريق الأدوات المساعدة.

    يمكنك استخدام ال quote او الشرطة المزدوجة -- أو Union selcet على نهاية الرابط المراد فصحة ومتابعة سلوك التطبيق غير المتوقع أو اي نتائج تظهر على الموقع.
    وبالطبع يوجد الكثير والكثير من الشرح والفيديوهات لهذا الثغرة هنا فقط فى منتديات أكتب كود
     
جاري تحميل الصفحة...