هل تبلورت الفكرة لديكم عن كيفية اكتشاف ثغرات حقن قواعد البيانات؟ اتمنى ذلك،فعندما سنصل إلى الجانب التطبيقي،ﻻ احب أن تسألوني عن البديهيات،فأعدوا العدة من الآن،و اطرحوا الأسئلة الآن و ليس عندما ندخل إلى الحرب…ليست حربا بمعنى الكلمة و لكن أمر اكتشاف الثغرات ليس سهلا كما يعتقد ذلك الكثيرون،فمن الممكن أن تعمل لساعات طويلة دون جدوى و يمكن أن تصل إلى مبتغاك بالصدفة،و هذا ما يجعل المهتمين بأمن المعلومات مهووسين بأمر اكتشاف الثغرات.
في الدرس السابق تعرفنا على طرق اكتشاف ثغرات الحقن و لكن لم نفصل فيها،لهذا فاليوم سنقوم بشرح كل النقاط التي رأيناها بالتفصيل الممل.هل تتذكرون هذا السطر:

 http://xxxxxxx.org/index.php?id=17+order+by+99999

ما معنى الأوامر التي أضفناها إلى رابط الموقع؟
لو افترضنا بأن الموقع مصاب بثغرة حقن قواعد البيانات،فالأمر order by هو أحد أوامر لغة SQL و سيقوم بترتيب النتائج التي طلبناها فقط بالإستناد إلى الخانة الأولى أي خانة الـ id،فأي جدول في قاعدة البيانات سيحوي خانة واحدة على الأقل و لكن عندما نطلب الترتيب حسب الخانة 99999 فاحتمال وجود هته الخانة(التسجيل) هو احتمال ضعيف،و بالتالي سنحصل نحن على خطأ من قاعدة البيانات.
للنتقل ﻷمر أخر و هو إضافة or+x=x+ بدل order+by+99999+…هذا يسمى أيضا تلاعبا بالأوامر المرسلة لقاعدة البيانات و لكن علينا أن نغير الرابط ليصبح كالتالي:

 http://xxxxxxx.org/index.php?id=-1+or+1=1

 لماذا وضعنا id=-1؟ نعلم تماما أنه من غير الممكن بتاتا بأن يكون الجدول في قاعدة البيانات ﻻ يحوي تسجيل فكيف إذن سيحوي -1 و بالتالي سنرغم قاعدة البيانات على أن تقوم بتنفيذ الأمر الذي أرسلناه إليها و هو or+1=1+ و بالتالي ستجلب لنا التسجيل اﻷول في قاعدة البيانات،ولو رأينا إلى أمر SQL المرسل إلى قاعدة البيانات لوجدناه كالتالي:

SELECT * FROM articles WHERE id=’-1′ or 1=1

 يمكنك أستخدام أي أمر شرطي حتى نقوم بتخطي الشرط الأول و تطبيق الشرط الذي نريد نحن تنفيذه على قاعدة البيانات.
لن أطيل الحديث،فعندما تتعقد الأمور الأفضل أن تكون الدروس قصيرة حتى يسهل الفهم،الدروس القادمة ستكون أكثر أثارة بحول الله…ﻻ تنسوا مشاركة الدرس مع الأصدقاء…دمتم بود،سلام

2 تعليقان. Leave new

  • السلام عليكم أخي عبد المجيد
    بداية أنصح لمن جاء متأخر بأن يرجع الى الدروس الفارطة حتى يستطيع مواكبة الدورة الجد مشوقة
    في هذه المرحلة أخي أرى أنه من الظروري على أي شخص أن يعود ليدرس قليلا على SQL لكي يفهم جيدا ,
    ممكن بعض الامور او بعض العناوين التي يجب أن أراجعها حتى أستطيع الفهم الجيد أخي
    تحياتي و تقديري أخي

    رد

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Fill out this field
Fill out this field
الرجاء إدخال عنوان بريد إلكتروني صالح.
You need to agree with the terms to proceed

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.