الرئيسيةالتسجيلدخول

شاطر | 
 

 ما معنى SQL injection

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
Tiger
مشرف
مشرف


ذكر
عدد الرسائل : 1619
العمر : 27
تاريخ التسجيل : 22/02/2008

مُساهمةموضوع: ما معنى SQL injection   الجمعة فبراير 13, 2009 7:42 am

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

1/ ما معنى SQL injection

  • إدخال (حقن) تعليمات SQL
    في قاعدة بيانات موقع ما من خلال ضعف أمني في برمجة الموقع بأخذ معلومات
    أو قيم مرتجعة من قبل المستخدم من الصفحة بدون فحصها بحثاً عن الرموز
    الممنوعة والتي قد تسبب خللاً في الجمل الخاصة بـ SQL عندما يتم إدخال هذه القيم في الحقول المخصصة في قاعدة البيانات.
  • SQL
    injection يمكن أن يحدث في أي مكان يقوم باسترجاع بيانات من المستخدم، أو
    يعتمد على قيم معينة يعتبرها المبرمج ثابتة في الصفحة، بينما في حقيقة
    الأمر يكون المهاجم قد قام بتبديلها بقيم أخرى معتمداً على أن المبرمج قام
    بإغفال هذه النقطة من خلال حفظ الصفحة لديه وإعادة تشكيلها مرة أخرى
    reconstruct بقيم مختلفة عما وضعه المبرمج، مثال: استخدام قائمة drop down
    لعرض مجموعة من الألوان والطلب من المستخدم اختيار لونه المفضل، يمكن
    للمهاجم حفظ الصفحة وإعادة كتابة شئ مختلف بدلاً من القيم بنفس الـ id
    المحدد للعنصر.
  • SQL injection يتنوع بين السهل الاستغلال وبين المعقّد الاستغلال.

  • يمكن إعطاء المثال البسيط التالي: جملة SQL في صفحة login.php تقوم باختيار عضوية من جدول بناء على وجود اسم مستخدم في هذا الجدول وتطابق كلمة المرور مع الحقل المناسب

    انسخ الكود


    1. SELECT id FROM users WHERE name='$name' AND pass='$pass';




    وفي الصفحة التي تظهر للمستخدم يوجد نموذج FORM بالشكل التالي:

    انسخ الكود











    عند النقر على زر Submit فإن النموذج يقوم بإرسال قيم الحقول name و pass إلى الصفحة login.php التي تحوي على جملة SQL السابقة.

    لو قام المهاجم بإدخال النص التالي كاسم مستخدم (نفرض وجوده في الجدول):
    كود
    admin

    وقام بإدخال كلمة مرور بالشكل:
    كود
    ' or 1=1;--


    فما يحصل هو أن القيم أعلاه سيتم إضافتها ضمن جملة SQL كقيم متغيرات لتصبح الجملة أثناء التنفيذ بالشكل التالي:




    1. SELECT id FROM users WHERE name='admin' AND pass='' OR 1=1;--';




    لاحظ كيف أنه يتم نفي احتمال كون كلمة السر فارغة من خلال استخدام الشرط المنطقي OR
    وتبديله بعبارة محققة دوماً، 1=1
    من ثم إدخال ; والتي تعني نهاية الجملة الشرطية
    من ثم -- التي تعني اعتبار كل ما يليها كتعليق لا يتم أخذه بعين الاعتبار أثناء التنفيذ (لتجنب الأخطاء التي قد تظهر في جملة SQL معقدة أكثر)

    في مثل هذا الاستغلال فإن المهاجم قام بالحصول على صلاحيات الحساب admin وبدون إدخال أي كلمة مرور.


  • يمكن استغلال SQL
    injection للحصول على صلاحيات، لسرقة جداول كاملة قد تحوي على بيانات
    شخصية أو بيانات هامة وسرّية (بطاقات الائتمان في موقع تجاري) والعديد من
    الأمور الأخرى.

  • بما أن جمل SQL
    لا تظهر للمهاجم وتختلف من موقع لآخر فيكون هناك عمل ينتظر المهاجم في
    كتابة استغلالات أكثر تعقيداً من المثال أعلاه للحصول على صلاحيات أو
    بيانات ما من جدول معين، فمجرد عدم الحصول على اسم الجدول يمنعه من الحصول
    على المعلومات الموجوده بداخله لذلك يلجئ المهاجم إلى إدخال استغلالات
    خاطئة عند التنفيذ تحدث خطأ معالجة تجعل السيرفر يقوم بتلفّظ معلومات
    لمحاولة توضيح الخطأ وسبب حصوله، غالباً ما تحوي هذه الأخطاء على معلومات
    مهمة للمهاجم كأن يظهر الخطأ التالي:

    كود
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][ODBC SQL
    Server Driver][SQL Server]Column 'users.id' is invalid in the select
    list because it is not contained in an aggregate function and there is
    no GROUP BY clause.
    /process_login.asp, line 35


    في
    استغلال خاطئ ( ' having 1=1-- ) يمكن المهاجم من معرفة الجدول والـ
    column الذي يعمل فيه ومعلومات أخرى أيضاً مثل GROUP BY التي قد تساهم في
    توسعة دائرة المعرفة الخاصة به!
  • blind SQL
    injection هو أحد الأنواع عندما يقوم مدير الموقع بتعطيل إظهار معلومات
    نتيجة استعلامات خاطئة، فلا يظهر شئ للمهاجم، حينها يكون عليه أن يقوم
    بعمل أكثر وربما يكون من المستحيل بالنسبة له الحصول على نتيجة عندما تفشل
    محاولاته جميعها في إعطائه ما يريد.
الرجوع الى أعلى الصفحة اذهب الى الأسفل
Tiger
مشرف
مشرف


ذكر
عدد الرسائل : 1619
العمر : 27
تاريخ التسجيل : 22/02/2008

مُساهمةموضوع: رد: ما معنى SQL injection   الجمعة فبراير 13, 2009 7:44 am

ههههههههههه
الرجوع الى أعلى الصفحة اذهب الى الأسفل
golden flower
مشرفة
مشرفة


انثى
عدد الرسائل : 2517
العمر : 28
تاريخ التسجيل : 28/04/2008

مُساهمةموضوع: رد: ما معنى SQL injection   الجمعة فبراير 13, 2009 7:50 am


موضوع جميل جدا


بس انت بتضحك ليه يا تايجر Mad

_________________
http://gflower.computality.com/
الرجوع الى أعلى الصفحة اذهب الى الأسفل
golden flower
مشرفة
مشرفة


انثى
عدد الرسائل : 2517
العمر : 28
تاريخ التسجيل : 28/04/2008

مُساهمةموضوع: رد: ما معنى SQL injection   الجمعة فبراير 13, 2009 7:55 am

انا فهمت



_________________
http://gflower.computality.com/
الرجوع الى أعلى الصفحة اذهب الى الأسفل
Tiger
مشرف
مشرف


ذكر
عدد الرسائل : 1619
العمر : 27
تاريخ التسجيل : 22/02/2008

مُساهمةموضوع: رد: ما معنى SQL injection   الجمعة فبراير 13, 2009 7:58 am

لان المنتدى فية ثغرة لو قربت الدرس هتلاحظى ان فية اتنين input box وكمان login دى اصلا كانت اكواد ولما عملت ارسل مسهمة الاكواد الترجمة يعنى زى ال SQl injection يعنى قدرت ازرع كود هوتميل ويترجم كانة كود ودى تتعتبر صغرة لان المفروض الكلام بياخدة يمررة على دالة تقوم بتحويل الكلام الى نص يبقى حتى لو فية كود المفروض يطلع زى ما هو
الرجوع الى أعلى الصفحة اذهب الى الأسفل
Tiger
مشرف
مشرف


ذكر
عدد الرسائل : 1619
العمر : 27
تاريخ التسجيل : 22/02/2008

مُساهمةموضوع: رد: ما معنى SQL injection   الجمعة فبراير 13, 2009 8:00 am

ودا الدرس التانى اللى هينزل تحت عنوان ما معنى Cross-site scripting لان اللى حصل دا يعتبر Cross-site scripting
الرجوع الى أعلى الصفحة اذهب الى الأسفل
golden flower
مشرفة
مشرفة


انثى
عدد الرسائل : 2517
العمر : 28
تاريخ التسجيل : 28/04/2008

مُساهمةموضوع: رد: ما معنى SQL injection   الجمعة فبراير 13, 2009 8:01 am



شكرا على التوضيح







_________________
http://gflower.computality.com/
الرجوع الى أعلى الصفحة اذهب الى الأسفل
نور
مشرفه عامه
مشرفه عامه


انثى
عدد الرسائل : 5392
العمر : 28
تاريخ التسجيل : 26/10/2007

مُساهمةموضوع: رد: ما معنى SQL injection   الجمعة فبراير 13, 2009 8:47 am

اوبااااااااااااااااااااااا

معقول الكلام دا
دا يبقى فعلا حاجة جامدة خالص

_________________



امحي زنوبك
من هنا

http://www.shbab1.com/2minutes.htm
الرجوع الى أعلى الصفحة اذهب الى الأسفل
lolla.
عضو ملكي
عضو ملكي


انثى
عدد الرسائل : 1129
العمر : 26
تاريخ التسجيل : 30/08/2008

مُساهمةموضوع: رد: ما معنى SQL injection   الجمعة فبراير 13, 2009 8:55 pm


انا مش فاهمه اى حاجه خالصscratch Evil or Very Mad
الرجوع الى أعلى الصفحة اذهب الى الأسفل
Tiger
مشرف
مشرف


ذكر
عدد الرسائل : 1619
العمر : 27
تاريخ التسجيل : 22/02/2008

مُساهمةموضوع: رد: ما معنى SQL injection   الجمعة فبراير 13, 2009 9:12 pm

ههههههههههه
ولا يهمك يا لولا البلد زى الفل متخديش فى بالك انتى دول ناس فاضية
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
ما معنى SQL injection
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
 :: الكمبيوتر والإنترنت :: الويب :: PHP-
انتقل الى: