سبب الوقوع بثغرة sql injection
سبب حدوث ثغرة sql injection , تفاصيل ثغرة sql injection , شرح ثغرات الحقن , شرح ثغرات sql injection , الحماية من ثغرات الحقن , شرح الحماية من ثغرات الحقن , الحماية من sql injection , شرح الحماية من sql injection , ثغرات sql injection , الحماية من ثغرات sql injection , اقوى دورة sql injection
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
كيفكم يا احلى اعضاء ، اعضاء منتديات جيوش الهكرز و ASDELY.NET
اليوم اقدكم لكم
[الدرس الثاني] سبب الوقوع بثغرة sql injection
وهاذا الشرح مقدم من منتديات جيوش الهكرز و ASDELY.NET بواسطة ASDELY-ScOrPiOn
ارجوا من الجميع مراجعه باقي الدروس لأهميتها ،
مقدمة دورة الحقن sql injection
[الدرس الاول] مقدمة في لغة mysql وبعض الاساسيات
الدرس هاذا بإمكانك اعتباره شرح حماية من ثغرات sql injection او مفاهيم ثغرات الحقن sql injection
وهاذا الشرح بالنسبة لي الاكثر اهمية ، لا تستهين فيه
في البداية
نسيت في الدرس السابق شرح إستعلام مهم جدا او بالأحرى قلت بشرحه لقدام وبريحكم من كثرة الاستعلامات ، لكن اتضح لي انها يجب ان تكون في بداية الشروحات واننا سنستخدمها في هاذا الشرح
where ، هذه التعليمه تفيدنا لعمل شرط ، فمثلا انت لديك 100 سجل او بيانات ، وتريد ان تختار سجل واحد حسب شيء معيّن ، يعني مثلا تطلع الاسم حسب الموقع
like ، وهذه تستخدم مع where وهي لتحديد الشرط مساوي لماذا ، وهي لها نفس وظيقة = في ال mysql ،لكن هذه تستخدم اذا كانت القيمه نصيه مثل ASDELY-ScOrPiOn
رح يوضح الامر في المثال بالأسفل
نرجع للمثال في الدرس السابق
لدينا قاعده اسمها aljyyosh.com
وفيها جدول اسمه asdely.net
وداخل الجدول يوجد اعمده باسم name,age,site
والجدول يوجد داخله بيانات او سجلات كما في الصوره التاليه
نريد ان نستخرج الموقع للإسم ASDELY-ScOrPiOn
رح يكون الامر كالتالي
select site from asdely.net where name like 'ASDELY-ScOrPiOn' order by Age desc
ما تهتم ل order by Age desc ما لها اهمية الان ، هي فقط من اجل ان نرتب النتائج ، بقترح تنساها الان وركز باللون الاخضر
في الامر اللي فوق رح يستخرج لنا الموقع الخاص ب ASDELY-ScOrPiOn وهو Aljyyosh.com
يعني النتيجه رح تكون
Aljyyosh.com
شوف كيف وضعنا
كود PHP:
where name like 'ASDELY-ScOrPiOn'
بمعنى قلنا له جيب الموقع من جدول asdely.net عندما الاسم يكون ASDELY-ScOrPiOn
يعني where معناها عندما
و like معناها =
طبعا هيك بكون خلصنا من اللي نسينا نشرحه بالدرس السابق
والان ندخل لموضوعنا وهو
سبب الوقوع بثغرة sql injection
على منتديات جيوش الهكرز
لماذا المبرمج يقع بثغرة الحقن sql injection ؟؟؟ او ما هو السبب في حدوث ثغرة sql injection ؟؟؟
الجواب واضح وبسيط ، هو انه المبرمج ما قام بفلترت اي تصفيّت او تنظيف او تنقيح المتغير المدخل
خلينا نرجع للبرمجة شويّ
يوجد في لغات البرمجة متغيرات يتم إدخال القيمه لها من قبل المبرمج مثل
كود PHP:
$asdely = "aljyyosh.com";
وهنالك متغيرات يتم ادخال القيمه لها حسب الزائر او المتصفح للموقع مثل
كود PHP:
$asdely = $_GET['asdely'];
في المتغير الاول المبرمج عرف داخل المتغير الاول قيمه تساوي aljyyosh.com
وفي المتغير الثاني المبرمج عرّف داخل المتغير قيمه تيجي من قبل الزائر
خلينا نعطي مثال
انت الان دخلت على موضوع في منتديات جيوش الهكرز
لنفرض ان الموضوع هو
http://www.aljyyosh.com/vb/showthread.php?t=29424
عندما دخلت للموضوع انت ادخلت قيمه للمتغيّر ، وهو رقم الموضوع اللي انت دخلت عليه ، وبهذه الطريقه عرف الموقع انه انت بدك الموضوع اللي رقمه 29424
شوف بالرابط ايش موجود
t=29424
يعني لو وضعنا
t=29427 على سبيل المثال ، رح يدخلنا لموضوع اخر
بهذه الحاله انت ادخلت للمتغير قيمه وهي رقم الموضوع
طيب يا ASDELY-ScOrPiOn ، ايش نستنتج انه مكتوب في الملف هاذا showthread.php ، اللي دخلنا عليه وحطينا قيمه من عندنا اللي هي 29424
اكيد رح يكون فيه
كود PHP:
$t = $_GET['t'];
طبعا كلمة $t هذه اسم المتغيّر ، مو مهم تكون t تقدر تحط اللي بدك اياه
اما ال t اللي بين قوسين اذا غيرتها يتغير الرابط
يعني مثلا لو وضعنا حرف m بدل t رح يصير رابط الموضوع اللي دخلنا عليه هو
http://www.aljyyosh.com/vb/showthread.php?m=29424
طيب هيك عرفنا المتغيّر اللي له دور اساسي في ثغرت الحقن sql inection
بس بعدنا معرفناش كيف صارت الثغره
نعطي مثال للتوضيح
مثلا عندنا قاعده اسمها aljyyosh.com
وداخلها جدول اسمه asdely.net وداخله اعمده وداخل الاعمده يوجد سجلات كما في الصوره التاليه
طيب المبرمج طلب الاسماء اللي موقعهم aljyyosh.com
رح يطلع له ASDELY-ScOrPiOn , black.jaguar
طيب خلينا نستخرج السجلات بكود برمجه ويكون موضح فيه الثغره
الصوره توضح
شوفوا كيف صار الامر
الامر معناه ، اختار الاسماء من جدول اسمه asdely.net عندما الموقع يكون حسب قيمة المتغير $site
شوفوا المتغير $site من النوع اللي الزائر يدخل له القيمه!! ، معناتو نحن نقدر ندخل القيمه اللي نريدها فيه ، لانه مش حاميه ومش منقحه
بمعنا نقدر هسا نضيف كود mysql داخله وسنرى في الدروس القادمه كيف سندخل كود لاخراج بيانات من جدول ثاني
يعني شوف نقدر الان نضيف مثلا انه يرتب النتائج تنازلي
معناتو وقتها بندخل في المتغير القيمه التاليه
aljyyosh.com order by Age desc
يصير الامر كانه
select name from asdely.net where site like 'aljyyosh.com' order by Age desc
طبعا هاذا الامر مثال على اننا نقدر ندخل كود اخر على الكود السابق
لهنا بإمكاننا اعتبار الدرس قد انتهى
بتمنا تكونوا فهمتوا اللي مكتوب فوق ، اقرأ الموضوع اكثر من مره حتى تفهمه
واذا اشي مش فاهمه ادخل لقسم المشاكل والإستفسارات واضف موضوع بمشكلتك ورح ارد عليكم انا والشباب
وهاذا رابط القسم
http://www.aljyyosh.com/vb/forumdisplay.php?f=19
ولمن يريد ان يعرف كيف يتم حماية المتغير من ثغرات sql injection يجب ان يتم تمرير المتغير في دوال الحماية
مثلا
اذا كانت القيمه المدخله للمتغير هي فقط رقم ولا تريد اي قيمه اخرى فيكفي ان تمرر المتغير في دالة
intval()
واذا كان غير محدد نوع القيمه فبإمكانك تمريره لدالة
mysql_real_escape_string()
او لدالة
addslashes()
بالنهاية ارجوا الدعاء لي ولوالديّ
لا تبخل بالرد
الخميس نوفمبر 29, 2012 12:38 pm من طرف Admin
» حصرى عملاق الحماية Avira 2013 13.0.0.2681 Final فى اصدارته الانتى فيرس والانترنت سيكورتى
الخميس سبتمبر 27, 2012 5:33 pm من طرف Admin
» حدث في مثل هذا اليوم 2 فبراير
الخميس سبتمبر 27, 2012 4:01 pm من طرف Admin
» حدث في مثل هذا اليوم 2/1 الاول من فبراير
الخميس سبتمبر 27, 2012 3:57 pm من طرف Admin
» حدث فى مثل هذا اليوم 31 يناير
الخميس سبتمبر 27, 2012 3:55 pm من طرف Admin
» حدث فى مثل هذا اليوم 30 يناير
الخميس سبتمبر 27, 2012 3:53 pm من طرف Admin
» حدث في مثل هذا اليوم 29 يناير
الخميس سبتمبر 27, 2012 3:51 pm من طرف Admin
» حدث فى مثل هذا اليوم28 يناير
الخميس سبتمبر 27, 2012 3:49 pm من طرف Admin
» حدث فى مثل هذا اليوم 27 يناير
الخميس سبتمبر 27, 2012 3:47 pm من طرف Admin