هي ثغرات تحدث في حال إدخال متغير ما على إستعلام (query) للغة قواعد البيانات mysql ومن ثم توجيه إستعلامات مخصصه لإستغلال مثل هذه الثغرات لنحصل على الهدف النهائي وهو إستخراج المعلومات من قاعدة البيانات بشكل كامل و غير شرعي , ويوجد للثغرة عدة لنذكر إثنين منها : –
error based sql injection
blind sql injection
في النوع الأول يكون إستغلال الثغرة ميسر ومن دون اي مشاكل وبسرعه تامه.
اما في النوع الثاني تكون المشاكل في تخمين إسم ونوع الجداول والصفوف مما يؤدي إلا تأخر العمليه (ولكنها تتم بالنهاية).
ومن باب العلم بالشئً أن هذه الثغرات تستهدف الكثير من اللغات البرمجية مثل php , java , asp , aspx.
حسناً .. لنبدء في طريقة White Box والتي سوف نقوم بشرح أكودا الثغرة المكتوبه بلغة Php بالإعتماد على لغة Mysql
نلاحظ في الصورة السابقه ولنشرح المكونات : –
السكربت يعمل إدراج لملف config.php والذي يتصل بدورة بقواعد البيانات.
السطر رقم 5 نلاحظ تعريف المتغير name بالقيمه المدخله من نوع POST والتي تتمثل بالحقل name.
بالسطر رقم 7 نلاحظ عمل إستعلام (mysql query ) والذي يحاول إختيار جميع الحقول الموجوده في الجدول name ومطابقتها مع المتغير.
بالسطر رقم 14 نشاهد عنوان ومعلومات النموذج (form) وهي قيمه POST كوسيلة لإرسال البيانات ومعالجتها بملف index.php.
لنأتي الأن لشرح تفاصيل الثغرة ومعرفة كيفية حدوثها , نشاهد أن المتغير لم يفلتر ولم يحدد ما هو من قبل المبرمج لذلك يسمع بإدخال جميع الأوامر والتعابير إلى الإستعلام مما يمكن حقن كود يؤدي لحدوث خطأ ينتج عنه ثغرة sql injection يؤدي إلى إستخراج جميع المعلومات الموجوده في خادم قواعد البيانات. هكذا نكون فسرنا الكود وإكتشفنا الثغرة الموجوده بالسكربت بكل سهوله من خلال قرأة المدخلات والتحقق من عدم فلترتها.
#Abbasawad25hack
#هكر_فلسطين
مواضيع ذات صلة