السلام عليكم
معايا ليكو انهرده درس جميل جدا و هوا عن
s q l i n j e c t i o n
طيب يا جماعه طبعا ثغرات الsql اللى ممكن تواجه الهاكر و فى ناس كتير اوى بتكرها لانها بتعتمد على الاوامر بشكل كبير
بس للاسف هما عايزين الحكايه حفظ مع انهم لو فهمومها هتبقا سهله جدا
المهم زى كل مره ازاى نكتشف ثغرات الsql
اولا فى ثغرات sql بتبقا فى ملفات php و فى ثغرات تبع asp و فى ثغرات تبع اماكن الدخول
اولا ثغرات الsql فى ملفات php
هيا ثغرات للاسف صعبه شويه هقولكو ليه كمان شويه
اولا ازاى انا هكتشف ان فى ثغره فى sql
فى الموقع
بكل سهوله انت بتضع علامه التنصيص بعد اى استعلام فى رابط الموقع
يعنى ايه!
بكل بساطه هتبقا كده
elahmadia.com/products.php?
action=SelectTree&treeview_cod=15'
هيطلعلنا خطا فى قواعد البيانات
الخطا ده ممكن يكون خطا برمجى عادى يعنى مش ثغره
طيب ازاى نعرف ان الخطا ده ثغره:)
اولا انت هتخلى الرقم اللى فى الاخر رقم مستحيل حدوثه
يعنى ايه!
يعنى انك تكتبو سالب مثلا
و بعدين تكتب الاستعلام ده
u n i o n s e l e c t n u l l/*
و هنا هنقف شويه نشرح الكود
u n i o n = دى عباره عن اداه ربط بين استعلامين يعنى انت بتامرو انو بعد ما ينفذ و يخش على الملف treeview_cod=15'
ينفذ الاستعلام بتاعك
s e l e c t=دى اداه اختيار يعنى انت بتحتار ملف مثلا اسمو userيبقا تكتب s e l e c t user
n u l l=دى فراغ يعنى انت بتختار فراغ طبعا مفيش حاجه اسمها اختيار فراغ و ده اللى هتفهمو القاعده لو فى ثغره و هتديك ايرور تانيه خالص و طبعا فى مواقع مانعه كلمه null فا ممكن نستخدم رقم واحد او صفر عل راحتك
/*=دى اداه بتوقل ان كل اللى بعدها لا ينفذ يعنى كأنو تعليق
دلوقتى الايرور الجديده دى لو قالتلك ان فى خطا فى الاستعلام selectلان عدد الحقول مش نفس العدد اللى انت دخلتو يبقا دى فعلا ثغره و تقدر تستغلها اما لو لقيت الايرور مش كده يبقا مش ثغره
طيب دلوقتى طلعت ثغره نعمل ايه يا فلنتينو
ققولكو
نزود null كمان علشان عايزين نعرف عدد الحقول
يعنى هتبقا كده
u n i o n s e l e c t n u l l,n u ll/*
طيب طلعت نفس النتيجه:s
نزود كمان واحده لحد ما تختفى الرساله خالص
طيب دلوقتى اختفت الرساله نعمل ايه تانى
عايزين بقا نطلع اسماء الحقول و للاسف فى اخطاء الphpلازم نطلع اسماء الحقول من الاسكريبت الاصلى و للاسف تانى فى مواقع بتعمل سكريبتات مخصوصه ليها علشان محدش يعرف اسماء الحقول ليها فا احنا هنطبق على الاسكريبت ده و نشوف هنطلع فيه ازاى الحقول

هنا زى ما انتو شافين ده تعريف المتغير

و هنا فى نفس الملف طالبين المتغير بى استلعام مباشر من القاعده و ده معناه انها ثغره
و يكون الاستغلال كده مع العلم ان الملف فى الصفحه الرئيسيه للاسكريبت
www.site.com/script/recipe.php?recipeid=sql
www.site.com= الموقع اللى مركب الاسكريبت
script=اسم الاسكريبت
recipe.php=الملف المصاب
recipeid=اسم المتغير المطلوب فى الاستعلام
sql=الاستغلال
طيب دلوقتى ازاى نجيب الحقول و الاعمده
زى ما قولت ان الثغرات من النوع ده فى مجلدات الphpلازم يكون معانا الاسكريبت
و هنشوف الكلام ده فى الاسكريبت اللى معانا
دلوقتى اول ما تخش على الاسكريبت و عايز تعرف عدد الحقول فى قاعده اليوزرز او الid على حسب ما تشوفها هتلاقى ملف بى امتداد.sql ده بيكون قاعده بيانات و ده اللى بيتخزن فيه الملفات
طيب دبوقتى فتحناه و ندور
انا لقيت عندى ان القاعده اسمها users
طيب تعالو نشوف عدد الاعمده اللى جواها علشان نعرف الاستغلال و نعرف نطلع منو باس و اسم الادمن على طول

زى ما انتو شافين فى الصوره دى اوامر عمل قاعده بيانات بى اسم usersو هنشوف بادخلها الاعمده و عددها

ده اول واحد

و ده التانى و هكذا لحد ما نطلعهم كلهم
طيب دلقوتى انا طلعو معايا 6 و اللى يهمنا فيهم هما login /pssword
طيب تعالو نستغلها بقا
www.site.com/script/recipe?recipeid=-1 u n i o n s e l e c t login,password,null,null,null,null f o r m u s e r s/*
كده الاستغلال النهائى و ده هيجيبلك الباسورد مشفر و اسم الادمن
طيب نشرحو من اول recipeid=-1
زى ما قولنا لو فاكرين ان احنا بنديلو رقم خيالى من عندنا و هنديهولو بالسالب
u n i o n =اداه الربط زى ما قولنا و قولنا بردو ان لازم يكون عدد الحقول مساوى لى للى فى القاعده علشان كده ضيفنا null بعدد الحقول اللى فى القاعده
select=لى الاختيار من جزء من القاعده علشان نعرضو
login,password,n u l l,n u l l,n u l l,n u l l احنا اخترنا الاتنين دول لانهم هما المهمين و عوضنا عن باقى الحقول بى null و ممكن نشيل null و نضيف اى اسم من اسماء الاعمده لو عايزين
/*=بتقولو ان اللى بعد العلامه دى ملوش لزمه
اظن كده احنا شرحنا الحاجات المهمه فى ثغرات الsql فى ملفات php و اى استفسار
=======================================================================================================
طيب دلوفتى بالنسبه لى الحمايه منها
محدش يجيب اى متغير فى استعلام مباشر
ده بالنسبه لى اصحاب الاسكريبتات
----------------------------------------------------------------------------------------------------------------
اما اصاحاب المواقع
حاول بقدر الامكان اخفاء امتداد الملف المصاب لو مش هتعرف
استخدم الجافا فى اخفاء الاخطاء
تفشير كلمه null بس للاسف هيا مش لازم تحط n u l l و ممكن تحط اى رقم او اى كلمه بس يعمل اى حاجه ييقدر عليه
حاول تستحدم كل برامج الاختراق ضد موقعك و اعرف ثغراتو و ققفلها
او اجر هاكر علشان يقولك على ثغراتك (:D)
يعنى باختصار اوعى تسمح لى المخترق انو يعرف انك عندى الثغره من النوع ده
و طبعا لو كنت مبرمج حاول انك تبرمج اسكريبت لى نفسك علشان متاكد منو كمان محدش هبعرف يوصل لى اسماء الحقول حتى لو جاب الثغره مع ان بقا فى فعلا برامج ببتجيبها انما احنا نعمل اللى علينا
:cry: