![]() |
افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز بسم الله الرحمن الرحيم :- اليوم انا هشرح درس اكتشاف ثغرات الحقن بالاسكربت لاكن بطريقة جديدة ومختلفة :- وده لان انا شايف بعض الناس بيطبقون النوع ده من الثغرات بدون فهم مبدا عمل الثغرة .. وانا هشرح كل شىء من الصفر لعيون المبتداين :- اول حاجة :- عشان تفهم ثغرات الحقن لازم يكون عندك خلفية بسيطة عن php+mysql وانا هشرح خلفية بسيطة عنهم عشان الدرس يكون مفهوم لجميع الاعضاء خاصة المبتداين.. ========================= ملحوظة:-المشفر بالنجوم الاربعة هى كلمة "name" ========================= ================= المتغيرات فى php ================ قبل مبدا بالمتغيرات هشرح عمل ال echo فى الphp تقوم echo بتطبع النصوص:- نشوف الكود :- كود PHP: لو وضعنا الكود ده فى ملف مثلا اسمه dolla.php ودخلت بالمتصفح راح تلاقى الجملة dolla is here مطبوعة بالصفحة :- طيب مثال اخر .. كود: <?php طيب الكود ده لو وضعناه بملف dolla.php ودخلنا عليه بالمتصفح هنلاقى تلت جملات مطبوعة وهى :- dolla love football dolla love php dolla love sql طيب لو انا مثلا عاوز اغير اسم dolla الى اسم مثلا Nesha واسم dolla ده موجود بكثرة فى كود الphp هل معقولة انى هعد اغير كل اسم dolla واحوله الى nesha لا طبعا :- هنا ياتى دور المتغيرات فى ال php :- يرمز للمتغيرات فى ال Php بعلامة $ وفايدة المتغير انك بدل متعمل طباعة لاسم معين انك تعمل الطبااعة للمتغير :- واما تحب تعدل الاسم الى هينطبع تعدله من المتغير بدل متضطر انك تعدل الاسم يدويا طيب نشوف الكود :- كود PHP: طيب عملنا المتغير الى هو $name وحطينا قيمته ب nesha وعلمنا طباعة للمتغير لو دخلنا على الملف من المتصفح راح يظهر الجمل الاتية nesha love football nesha love php nesha love sql طيب تمام عرفنا فايدة المتغير .. فى نوع تانى من المتغيرات وده الاهم وهو المتغيرات ب GET ========================== المتيغرات بGET فى PHP ======================== النوع التانى من المتغيرات هو المتغيرات ب GET والمتغير هنا بيتغير حسب ال URL الى بالمتصفح بمعنى انك موش بتعدل عالمتغير من الكود .. انما يتم تغيير المتغير من خلال ال URL طيب نشوف الكود :- كود PHP: طيب الجديد هنا انى عملت المتغير dolla ب GET بمعنى ان المتغير هتتغير قيمته حسب القيمة الى هتدخل فى ال Name من خلال الurl بمعنى نفرض انى وضعت الكود بملف اسمه index.php وعاوز اطبع مثلا جملة dolla+is+here هكتب :- index.php?name=dolla+is+here بعد اما اما تضغط انتر راح يتم تسجيل الجملة dolla+is+here بالمتغير dolla وراح تتم طباعة المتغير dolla الى هو قيمته dolla+is+here طيب نشوف الصورة http://img338.imageshack.us/img338/6268/38618233.png طيب تمام تم طباعة الجملة dolla+is+here نفهم من كده ان المتغير dolla بتتغير قيمته حسب الى بندخل فى ال url فى ال Name طيب مثلا لو عاوزين نخلى المتغير dolla قيمته nesha+is+here هنكتب index.php?name=nesha+is+here http://img809.imageshack.us/img809/1656/11071793.png طيب جميل تم تغيير قيمة المتغير الى nesha+is+here وتم طبعها بالمتصفح ============================================= ============================ مدخل الى عالم ال mysql ============================ لغة ال mysql هى لغة برمجة خاصة بقواعد البينات اول حاجة لازم نعرفها انه اى قاعدة تتكون من جداول والجداول تتكون من اعمدة مثلا عندنا قاعدة اسمها dolla والقاعدة دى فيها جدولين الجدول الاول :admin:- ويتكون من ثلال اعمدة id name pass الجدول التانى :- profile ويتكون من اربع عواميد :- id name age job ====== http://img339.imageshack.us/img339/9853/83392373.png ======== طيب :- هناك بالقواعد الصفوف والصفوف دى بتبقى القيم بتاعت العواميد يعنى مثلا فى جدول admin العمود id يحتوى على القيمة رقم عضوية الادمن :1 العمود name يحتوى على اسم الادمن :dolla العمود Pass بيه باس الادمن :123456 قيم العواميد بتعرض فى شكل صفوف http://img826.imageshack.us/img826/8105/35595081.png ================================== جمل ال select statment فى mysql =============================== هناك العديد من الاوامر فى Mysql مثل slelect,update,insert بس انا هشرح ال select وفايدة جمل ال select هى اختيار معلومات معينة من جدول معين بقاعدة معينة لاظهارها مثلا لو انا عملت كود: select name from admin طيب لو كود: select pass from admin طيب لو عملت كود: selct pass,name,id from admin 123456 dolla 1 =========================================== كود برمجى مكون من php+mysql =========================================== طيب دلوقتى معانا كود بيجمع بين المتغيرات ب GET فى PHP + امر SELECT فى Mysql طيب نشوف الكود http://img844.imageshack.us/img844/390/45170289.png طيب نشرح الكود :- اول حاجة عندنا المتغير id ده متغير ب get يعنى بتتغير قيمته حسب القيمة الى هنحطها فى ال url بالمتصفح طيب تانى حاجة عندنا $query وده بيتحوى على امر sql من نوع select والامر ده بيقوم بختيار ال name وال age وال job من جدول profile اعتمادا على ال id دى وظيفة where انها بتجبلك معلومات عن عواميد معينة بدلالة عواميد اخرى طيب لو نلاحظ ان امر ال select ده المكتوب فى الكود معتمد على المتغير id الى هنكتبه بالurl فملا لو الكود بملف profile.php واحنا دخلنا عالملف بالمتصفح وكتبنا :- index.php?id=1 ايه الى هيحصل هيتم تخزين القيمة 1 بالمتغير get وبالتالى هيتم تخزين القيمة بالمتغير الموجود بال query الى 1 http://img64.imageshack.us/img64/3488/81738281.png طيب بالون الفوشيا تم ادخال القيمة الى ادخلنها من ال url فى المتغير $id وبالتلى وبالتالى تم تغييرها بال query طيب بعد كتابة index.php?id=1 ده هيعمل query الى هو:- كود: select name,age,job where id=1 وده هيكون نتيجته بالصفحة :- abdo 20 doctor طيب لو كبتنا index.php?id=2 هتجلنا معلومات الصف رقم 2 الى هى :- ahmed 22 engineer تمام الى هنا كل شىء واضح :- نجى بقى لفكرة ال SQL Injection ===================================== مدخل الى عالم ال sql injection ==================================== اول حاجة معنى sql injection هو حقن ال sql وده معناه اننا:- بنحقن او بنضيف اوامر sql خبيثة الى امر ال sql الموجود اساسا بالاسكربت يعنى بدل مكنا بنكتب index.php?id=2 هنضيف اوامر خبيثة تقوم باحضار pass ال admin من خلال ال union select ========================= Union select ========================= تستخدم ال union فى جملة ال select لاختيار معلومات عن عواميد من جداول مختلفة وشروطها :- عدد العواميد ال query الاول يكون مساوى لعدد العواميد بال query ألتانى مثلا كود: select name,pass from admin union select name,age from profile وبالquery التانى تم اختيار عمودين من جدول profile لازم عدد العواميد يكون متساوى فمثلا لو اخترت عمود واحد من جدول ال admin يبقى لازم اختار عمود واحد ايضا من جدول profile كود: select name from admin union select age from profile ================================================== === استخراج اسم+رقم العضوية +باص الادمن ================================================== === طيب نرجع لموضوعنا تانى دلوقتى يجماعة احنا عارفين اننا بنتحكم فى قيمة المتغير id من خلال ال url index.php?id=2 طيب هنا بقى انا هحقن ال query الى بالاسكربت من خلال ال Union select احنا عارفين ان ال query الاول بيطلب تلت عواميد ال age,name,job طيب دلوقتى انا حقن query خبيث هيجيب باص الادمن بالصفحة :D نشوف هكتب ايه :- كود: index.php?id=2 union select id,name,pass from admin بعد متدوس انتر الى هيحصل للكود البرمجى http://img230.imageshack.us/img230/9921/34235625.png طيب طبعا بعد اما تدوس انتر بالمتصفح معلومات الادمن هتظهر بالصفحة 1 dolla 123456 ============================================= التعليقات فى Mysql ============================================= فى بعض الاحيان يكون الكود البرمجى :- http://img718.imageshack.us/img718/5350/43042147.png group by age هترتب نتيجة العمر والوظيفة والاسم حسب العمر :) طيب دلوقتى فى مشكلة قدامنا ان فى جملة group by age بعد المتغير $id يعنى الجملة دى هتنضاف بعد الquery بتاعنا كود: index.php?id=2 union select id,name,pass from admin http://img693.imageshack.us/img693/9900/93128214.png طيب دلوقتى جملة ال group by age تم اضافتها لل query وطبعا ده هيخلى ال query بتاعنا failed يفشل :D واحنا عاوزين نتلاشى الجملة group by age يعنى نخليها ملهاش تاثير من هنا ياتى دور التعليقات :- comments التعليقات وظيفتها هى :- اهمال جملة معينة فى ال query اى جعلها مجرد تعليق :- ومن ثم لا يكون لها اى تاثير وممكن نستخدم فى التعليق فى Mysql كود: /* او -- هنعمل ايه :- كود: index.php?id=2 union select id,name,pass from admin/* http://img42.imageshack.us/img42/583/36397276.png ================================================== ========= طيب فى مشكلة كمان ساعات بتقابلنا فى ال sql injection اننا موش بنقدر نشوف نتيجة ال query بتاعنا فى من خلال union select وده ياما بسبب ان مفيش مكان يتسع لنتيجة ال query بتاعنا الى ضيفناه بالصفحة :- الفكرة انى هخلى ال query الاول يفشل يعنى هخليه قيمته false وبالطريقة دى نتيجة الكويرى الاول موش هتظهر :- فممكن نشوف نتيجة الكويرى بتاعنا الى احنا ضفناه فى امكان ظهور نتائج الكويرى الاول :d طيب ازاى نخلى الكويرى الاول failed او نخليه يفشل هنضيف قيمة موش موجودة بالقاعدة مثلا زى -2 واحنا عارفين ان مفيش رقم id بالسالب يعنى كده بخلى الكويرى قيمته false او بالبلدى بخلى الكويرى خطا نشوف كود: index.php?id=-2 union select id,name,pass from admin/* http://img9.imageshack.us/img9/9734/53415014.png طبعا الكويرى اصبح الاول كود: SELECT name,age,job FROM profile WHERE id=-2 وبالتالى نتيجة الquery بتاعنا الى هو بيجيب باص الادمن واسمه ورقم عضويته هتظهر مكان نتيجة ال query الاول ================================ ممكن كمان نضيف and 1=0 عشان نخلى قيمة الكويرى خطا كود: index.php?id=2 and 1=0 union select id,name,pass from admin/* لحماية المتغيرات الرقمية من اضافة النصوص نستخدم الدالة intval() فهى تقوم بالتحقق من ان المتغير رقمى وترفض اى نص يتم اضافته من المستخدم... http://img716.imageshack.us/img716/4693/39562646.png طبعا تعمدت انى لا اضع دوال الاتصال بالقاعدة بالكود البرمجة ووضعته كروكى يعنى مبسط جدا حتى اسهل الفكرة للمبتداين ======================================= طيب جميل .. بكده ينتهى الدرس وترقبوا الجزء التانى منه بازن الله تعالى ... اخوكم DOoOoOoLLA يريت يجماعة الى عندو يؤال ميترددش وانا هجاوبه اهم شىء تعم الفائدة للاعضاء. ================================================== ======= |
مشطوووووووور |
[align=center][/align]السلام عليكم جزاك الله خيرا على هذ الشرح الإحترافي مميز بكل ما تعنيه الكلمة من معاني هذه هي الشروحات التي تجعل المبتدأ يفهم كل شيء بصراحة شرح في القمة تستاهل كل الشكر و العرفان ننتظر جديدك أخ دولللللا |
رد: افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز شكررررررررررررررررررررررررررر |
رد: افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز مرحبا بجميع الهكرز, طاب مسائكم |
رد: افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز thanks |
رد: افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز الله يعطيك العافية |
رد: افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز یعطیک العافیە |
رد: افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز sdfgdsgsdfgsdfg |
رد: افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز الاقتباس غير متاح حاليا يا للشرح الحلو شكرا |
رد: افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز gooood jib |
رد: افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز شرح جامد شكرا ليك |
رد: افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز شكرا للمواضيع الجميلة |
الساعة الآن 01:00 PM |
[ vBspiders.Com Network ]