الوسوم:
حالة الموضوع:
مغلق
  1. 0ne-Tw0

    0ne-Tw0 Developer

    الأنتساب:
    ‏14 يناير 2013
    المشاركات:
    34
    الإعجابات المتلقاة:
    1
    نقاط الجائزة:
    8
    [​IMG]

    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاته

    اللهم لا علم لنا الا ماعلمتنا , اللهم علمنا ماينفعنا وانفعنا بما علمتنا انك انت العليم الحكيم.

    مقدمة في تغرة الـ SQL injection

    [​IMG]

    التعريف

    درسنا اليوم سيهم موضوع اختراق المواقع بثغرة SQL injection و هو عبارة عن

    عملية استغلال لخطأ برمجي حيث يهمل المبرمج ادراج كود برمجي يقوم بفلترة

    المدخلات على البرنامج المعطوب ، ثم يقوم المهاجم باستغلال هذا الخطاء من أجل

    الوصول إلى بيانات الادمين "admin" و "Password"

    أنواع الحقن SQL injection

    تتعدد انواع الحقن حسب نوع الخطأ بقاعدة البيانات و التي يمكن استغلالها عبر

    مستعرض الويب "Navigateur" و من ضمن هذه الأنواع نجد :

    - الحقن الأعمى Blind injection :

    في أغلب بيئات الحقن الجيدة ( المقصودة هنا عندما تكون نوع قاعدة البيانات ذات

    جودة عالية رغم وجود الخطأ ضمن معطياتها ) نجد أنها لا تسمح للمهاجم برؤية نوع

    الخطأ في شكل رسائل خطأ أو حقول قاعدة البيانات المستخرجة حين إجراء حقن

    SQL ، و يعرف هذا النوع من الحقن بالحقن الأعمى و ينقسم بدوره إلى :

    * حقن العمى الجزئي : هو الحقن حيث يمكنك أن ترى تغييرات طفيفة في الصفحة

    التي تظهر، على سبيل المثال، اذا فشل المهاجم في الحقن فإنه و بصفة أوتوماتيكية

    سيتم توجيهه إلى الصفحة الرئيسية، حيث أن الحقن الناجح سيولد صفحة فارغة

    مشيرة بذلك الى أن عملية الحقن تسير في المسار الصحيح

    * الحقن الأعمى التام : على عكس الحقن الأعمى الجزئي فإن الحقن الأعمى التام لا

    ينتج أي اختلاف على مستوى المخرجات ، رغم أنه يظل قابلا للحقن رغم كل شيء ،

    غير أن المشكل الذي يواجهه المهاجم هو أنه من الصعب تحديد ما إذا كان حقن

    يجري فعلا

    - السلاسل الرذيئة التصفية Poorly Filtered Strings :

    أساسا فإن الحقن يعتمد على كشف الخطأ ضمن قواعد البيانات عن طريق اضافة

    مدخلات يعجز البرنامج المُهَاجَمْ عن تصفيتها على سبيل المثال اذا طبقنا هذا الأمر

    على موقع مصاب تكون النتيجة على الشكل التالي :

    - لدينا الموقع التالي مصاب بثغرة SQL injection :

    كود PHP:
    http://www.merkazalon.co.il/index.php?id=9
    أولا و قبل كل شيء سنقوم بتحليل رابط الموقع المصاب :

    .co.il : نطاق اسرائيلي

    .php : لغة السكربت ( ملاحظة ... فيما يخص برمجة المواقع فإن كلمة سكربت و

    تطبيق الويب و برنامج جميعها تحمل نفس المعنى )

    id : المتغير أو ما يسمى باللاتينية بالـ Variable

    9 : الرقم في هذه الحالة يشير إن صح القول الى الصفحة المصابة بالخطأ أو ما

    نسميه بالثغرة ( SQL )

    ثانيا نمر الى الجانب التطبيقي من الدرس :

    عند تصفحنا للموقع المصاب فإننا في بداية الأمر نعجز عن تحديد الخطأ، لكن هذا الأمر

    لن يشكل لنا مشكلة في هذا النوع من الحقن حيث انه كما ذكرنا سالفا فإن الحقن

    يعتمد على كشف الخطأ ضمن قواعد البيانات عن طريق اضافة مدخلات يعجز البرنامج

    المُهَاجَمْ عن تصفيتها و كمثال على هذه المدخلات سنضع علامة ' بعد الرابط

    مباشرة ليصبح على الشكل التالي :

    كود PHP:
    http://www.merkazalon.co.il/index.php?id=9'
    نلاحظ انه بعد اضافة ' الى الرابط فإن محتويات الصفحة تغيرت حيث شهدنا اختفاء

    الصور في هذه الحالة و في حالات أخرى قد نصادف اختفاء الكتابة أو استبدال محتوى

    الصفحة بمحتوى آخر غير أن أشكال الخطأ تختلف من موقع لآخر اذ و من الممكن

    ظهور رسالة خطأ تختلف هي الأخرى حسب نوع الخطأ و نوع القاعدة و كمثال على

    رسائل الخطأ هناك :

    كود:
    - you have an error in your SQL syntax
    - warning : mysql_num_rows()
    - warning : mysql_fetch_array()
    و المزيد من رسائل الخطأ التي من الممكن أن نستغلها في عملية الاختراق

    العشوائي من أجل جلب مواقع مصابة .

    و كل هذه التغييرات تعد مؤشرا على وجود ثغرة بقاعدة البيانات

    و بهذا فإن السلاسل الرذيئة التصفية Poorly Filtered Stringsيقصد به عدم قدرة

    البرنامج على تصفية المدخلات مما يسبب خطأ يقوم لمهاجم باستغلاله من أجل

    الوصول الى البيانات الهامة في قاعدة البيانات .

    - التعامل الخاطىء مع نوع المتغير Incorrect Type Handling :

    يحدث هذا النوع من الأخطاء عادة عندما لا يتم فحص مدخلا لنوع القيود ، ومثال على

    هذا أن يكون حقل المتغير ذو طبيعة رقمية ( id=2 )، ولكن ليس هناك فلترة في

    المكان للتأكد من أن مدخلات المستخدم رقمية، القيمة is_numeric () ينبغي دائما أن

    تستخدم عندما يفترض أن يكون نوع المتغير رقميا

    - توقيع التهرب Signature Evasion :

    عند عملية الحقن فإن المهاجم في بعض الأحيان يتعرض للحجب من طرف البرامج

    التي من مهمتها كشف عملية الحقن كاجراء امني يتخده صاحب الموقع أو السيرفر

    المستهدف و من ضمن هذه البرامج نجد : mod_security لسيرفر الأباتشي و كذلك

    Snort كما أن خداع هذه البرامج ليس سهلا و لكنه ليس مستحيلا في نفس الوقت و

    هذا الأمر ما يسمى بالتهرب من التوقيع , هناك العديد من الأساليب التي يمكن

    استخدامها لتجاوز الكشف عن التوقيع، وسيتم وصف بعض منها في مواضيع لاحقة و

    كأمثلة على بعض هذه الأساليب لدينا :

    كود PHP:
    Different Encoding
    White Space Multiplicity
    Arbitrary String Patterns
    Filter Bypassing
    و في النهاية ، هذه لم تكن سوى نظرة موجزة لأهم الثغرات على الاطلاق حيث أن

    إتقان عملية الحقن و تطبيقها بنجاح يؤهل المهاجم للحصول على سيطرة مطلقة

    على النظام أو ما يسمى بالروت - Root .

    في التدوينة المقبلة سنتطرق لأهم تقنيات الحقن - SQL injectionالمختلقة و كذا

    البرامج الممكن الاستعانة بها في عملية الحقن

    الى هنا انتهى درسنا اتمنى ان تكونو قد استفدتم من الدرس
     
    1 person likes this.
  2. ӎƦ.HmidE

    ӎƦ.HmidE DeveloPer Plus

    الأنتساب:
    ‏9 يوليو 2012
    المشاركات:
    106
    الإعجابات المتلقاة:
    3
    نقاط الجائزة:
    18
    الوظيفة:
    .....
    الإقامة:
    JoRdaN
    رد: مقدمة في تغرة الـ SQL injection

    والله انك مبدع
     
  3. الصقر الاسود

    الصقر الاسود Developer

    الأنتساب:
    ‏3 يوليو 2012
    المشاركات:
    2
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    1
    رد: مقدمة في تغرة الـ SQL injection

    يعطيك الف عافيه يا اخى

    درس ممتاز واصل ابداعك ولاتحرمنا من دروسك القيمه

    :{1}::{1}::{1}:​
     
  4. Јoяdαη

    Јoяdαη Active DeveloPer

    الأنتساب:
    ‏12 مارس 2012
    المشاركات:
    92
    الإعجابات المتلقاة:
    1
    نقاط الجائزة:
    8
    الوظيفة:
    Security Hacking Sites
    الإقامة:
    الاردن
    رد: مقدمة في تغرة الـ SQL injection

    بطل الله يعطيك العافيه وتسلم يمينك %:"​
     
  5. ناصر العنزيَ

    ناصر العنزيَ Developer

    الأنتساب:
    ‏30 ابريل 2012
    المشاركات:
    10
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    1
    الإقامة:
    الكويت
    رد: مقدمة في تغرة الـ SQL injection

    تم التقيم . .

    وبتوفيق لكْ *:"
     
  6. Mr.Hack

    Mr.Hack Developer

    الأنتساب:
    ‏19 يوليو 2012
    المشاركات:
    9
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    1
    الإقامة:
    الأردن الحبيب
    رد: مقدمة في تغرة الـ SQL injection

    يعطيكك العافيةة اخوي 0ne-Tw0 i:q^:
     
حالة الموضوع:
مغلق

مشاركة هذه الصفحة