ﻻ شك أنكم قد اخذتم نظرة جيدة جدا عن ثغرات حقن قواعد البيانات،و كيف يتم اكتشافها،و بالتالي علينا أن نعرف كيف يتم استغلالها.
قبل نشرع في عملية الإستغلال عليك أن تعرف بأنه يوجد نوعان من ثغرات الحقن،بحيث أن الإختلاف بينهما يكمن في طريقة الإستغلال،النوع الأول و هو النوع العادي و الذي تعرفنا عليه في الدروس السابقة.في هذا النوع من الثغرات عندما نقوم بإضافة احدى العلامات التي تعرفنا عليها سابقا كعلامة التنصيص...قاعدة البيانات ستظهر لنا خطأ يفيد بأن هنالك خطأ في كتابة أوامر لغة SQL.
النوع الثاني أو ما يعرف بالحقن الأعمى Blind SQL Injection،ففي حالة قمنا بنفس الشيء قاعدة البيانات إما تعطينا صفحة بدون محتوى أو صفحة بيضاء فارغة.
لنعد الآن لمثالنا السابق،فقد رأينا بأن أمر الـ SQL كان كالتالي:
SELECT * FROM articles WHERE id='ID'
و بالتالي فإن العمود ID هو العمود المصاب في قاعدة البيانات.الآن علينا أن نعرف كم يوجد من عمود في قاعدة البيانات كخطوة أولى حتى نستطيع تخمين أسماء هته الأعمدة فيما بعد.
حتى نستطيع تخمين عدد الأعمدة سنقوم باستخدام طريقتين،إما باستخدام الأمر UNION ALL SELECT،هذا الأمر يتيح لنا اختيار او جلب البيانات مرتين من قاعدة البيانات في نفس الأمر "Query" و بالتالي سنحصل على البيانات من جراء الأمرين.
الأمر الثاني و هو اﻷكثر استخداما و هو الأمر ORDER BY،هذا الأمر يفعل ما يقول،فهو يقوم بترتيب المخرجات بالإستناد إلى شرط تحدده أنت،و بالتالي يمكنك ترتيب المخرجات بالنسبة للـ ID أو بالنسبة للواحد.الآن حتى نستطيع معرفة عدد الأعمدة في جدول قاعدة البيانات سنقوم بالتالي...نحن نعلم مسبقا بأن الجدول يحوي 3 أعمدة هي ID و Subject و Text.
سأحاول الإبقاء على الدروس بسيطة و قصيرة حتى يسهل فهمها،لهذا نكتفي بهذا القدر لليوم،على أمل أن لقاكم في الدروس المقبلة بحول الله.ﻻ تنسوا مشاركة الدرس مع الأصدقاء،دمتم بود،سلام
حتى نستطيع تخمين عدد الأعمدة سنقوم باستخدام طريقتين،إما باستخدام الأمر UNION ALL SELECT،هذا الأمر يتيح لنا اختيار او جلب البيانات مرتين من قاعدة البيانات في نفس الأمر "Query" و بالتالي سنحصل على البيانات من جراء الأمرين.
الأمر الثاني و هو اﻷكثر استخداما و هو الأمر ORDER BY،هذا الأمر يفعل ما يقول،فهو يقوم بترتيب المخرجات بالإستناد إلى شرط تحدده أنت،و بالتالي يمكنك ترتيب المخرجات بالنسبة للـ ID أو بالنسبة للواحد.الآن حتى نستطيع معرفة عدد الأعمدة في جدول قاعدة البيانات سنقوم بالتالي...نحن نعلم مسبقا بأن الجدول يحوي 3 أعمدة هي ID و Subject و Text.
http://xxxxx.xxx/index.php?id=17+ORDER+BY+2
http://xxxxx.xxx/index.php?id=17+ORDER+BY+3
http://xxxxx.xxx/index.php?id=17+ORDER+BY+4
الصفحة البيضاء هي دليل على أن الجدول ﻻ يحوي أربع أعمدة بل يحوي 3 أعمدة فقط.
يمكن تخمين عدد الأعمدة عن طريق الأمر الأول كالتالي:
http://xxxxx.xxx/index.php?id=17+UNION+ALL+SELECT+1,2,3بحيث نجرب في كل مرة اضافة رقم جديد حتى نحصل على صفحة بيضاء لنعرف كم عدد الأعمدة في الجدول المصاب.
سأحاول الإبقاء على الدروس بسيطة و قصيرة حتى يسهل فهمها،لهذا نكتفي بهذا القدر لليوم،على أمل أن لقاكم في الدروس المقبلة بحول الله.ﻻ تنسوا مشاركة الدرس مع الأصدقاء،دمتم بود،سلام
الله يوفقك :)
ردحذفيوسف
الله الموفق و الله المستعان أخي يوسف،تشكر
حذفالسلام عليكم أخي عبد المجيد
ردحذفشكرا لك على الشرح و على التبسيط في الشرح
لمادا أخي أضفت <- span=""> و <- div=""> و ما دورها ؟
بارك الله فيك اخي
تحياتي
و عليكم السلام و رحمة الله
حذفذلك خطأ بسيط لم انتبه له فقط،سأقوم بالتعديل عليه الآن