:: vBspiders Professional Network ::

:: vBspiders Professional Network :: (http://www.vbspiders.com/vb/index.php)
-   حمـــاية السيــرفرات والمواقـــع (http://www.vbspiders.com/vb/f138.html)
-   -   تجنب الحقن (جزء 1) sQL Injection (http://www.vbspiders.com/vb/t59645.html)

ReD-HaT 11-23-2011 10:05 AM

تجنب الحقن (جزء 1) sQL Injection
 
السلام عليكم ورحمة الله تعالى وبركاته

اليوم معنا درس في كيفيت تجنب الحقن السكويل في الموقع :icon26:

  1. تعريف الحقن الاسكويل : ثغرات الاسكويل تعد من أخطر و أكثر الثغرات شيوعا في المواقع التي تدعم لغة php
  2. في هدا الدرس سنشرح مبدأ الحقن sql , وكيفية تجنبه

- ادن ثغرات السكويل هي ثغرات جد كبيرة و خطيرة على المواقع , و خصوصا ادى كان الموقع فضاء للأعضاء كالمنتدى مثلا , أو موقع فيه معلومات عن الأدمن و اليوزرس
و طبعا تكون قاعدة البيانات MYSQL

أنا هنا قلت MYSQL لأنه توجد عدة قواعد بيانات ك: oracle , sqlite , postgreSQL ,microsoft SQL server ...... سوف أتطرق لشرحها في دروس قادمة

المهم حتى نبدأ الدرس لازم تكون عندك دراية كافية بلغة php و تعرف كل شئ عنها


طرح المشكل

-يوجد نوعان من الحقن sql :

  • الحقن عن طريق المتغيرات التي تحتوي على سلاسل من أوامر الطباعة
  • الحقن عن طريق المتغيرات الرقمية


  1. المتغيرات التي تحتوي على سلاسل الطباعة
- نفترض انه لدينا سكربت php الدي سبيحث مثلا عن عمر عضو بوظيفة اليوزر
هدا اليوزر مر من صفحة لأخرى عن طريق الرابط l'URL عبر GET_$

مثال لسكريبت :
كود PHP:

 <?php ... $pseudo $_GET***91;'user'***93;; $requete mysql_query("SELECT age FROM membres WHERE user='$user'"); ...


- ادن اعلموا على ان هدا السكربت هو ثغرة كبيرة للحقن sql

- يكفي للهكر أن يضع في الرابط l'URL طلب مثل هدا :

كود:

' UNION SELECT password FROM membres WHERE id=1
- بهدا الطلب الهكر هنا يريد الحصول على الباسورد للعضو الدي يحمل الايدي واحد id=1
- لن أتعمق أكثر هنا أعطيتكم مجرد توضيح عن الكيفية

طريقة حماية السكربت

- لحماية هدا النوع من الحقن يكفي اضافة الوظيفة mysql_real_escape_string()

- اها طب كيف تعمل و ماهي وظيفتها ؟

-- هده الوظيفة تضيف طباعة "/" الى الطباعات التالية :

كود:

NULL, \x00, \n, \r, \, ', " et \x1a

- اوكي , في مادا تصلح ؟

-- مثلما لاحظتم في الحقن السابق الهاكر استعمل الاستعلامة ' لكي يخرج ما يحيط ب user$ ادى نحن منعناه من عمل هدا فلن يستطيع الحقن
ادن نستخلص اننا بستعمالنا mysql_real_escape_string() نكون قد فعالنا الحماية للطلب الدي يريده الهاكر

-تطبيق:
كود PHP:

<?php ... $user mysql_real_escape_string($_GET***91;'user'***93;); $requete mysql_query("SELECT age FROM membres WHERE user='$user'"); ...

بتدقيق :

الهاكر يعطي أمر هكدا
كود:

' UNION SELECT password FROM membres WHERE id=1
نحن باستعمالنا ل mysql_real_escape_string() يصبح طلب الهاكر هكدا

كود:

\' UNION SELECT password FROM membres WHERE id=1
مما يعني انه لا يستطيع استخراج user$ بما ان "/" قد أضيفت

ملحوظة : توجد وظيفة أخرى
كود:

addslashes()
تستعمل في PHP 4.3.9 مع magic_quotes_gpc يكون مفعلا

- انتهينا من الشرح في :
  • الحقن عن طريق المتغيرات التي تحتوي على سلاسل من أوامر الطباعة
-- في الدرس التاني سوف نرى الاستغلال و الحماية في المتغيرات الرقمية
  • الحقن عن طريق المتغيرات الرقمية

تم الشرح من طرف

ReD-HaT

الى اللقاء في الدرس القادم و في شروحات أخرى ان شاء الله

تحياتي للجميع

:14:

vpn_31 11-23-2011 10:27 AM

رد: تجنب الحقن (جزء 1) sQL Injection
 
تسلم يديك على طرح يأخي :)
بلفعل أنها أخطر ألثغراة

ReD-HaT 11-23-2011 10:31 AM

رد: تجنب الحقن (جزء 1) sQL Injection
 
تسلم أخي على مرورك الحلو ^^

Cyber Code 11-30-2011 11:50 PM

رد: تجنب الحقن (جزء 1) sQL Injection
 
بارك الله فيك , الحقن اكثر ثغرة يقع فيها المبرمجين عادتاً

bleu moon 12-02-2011 03:29 AM

رد: تجنب الحقن (جزء 1) sQL Injection
 
بارك الله فيك يا ريد :)
بس ياريت تعمل مثلا ملف txt وترفق فيها الاكواد لانها مشفره

Dr.NaNo 12-02-2011 09:40 PM

رد: تجنب الحقن (جزء 1) sQL Injection
 
شكرآ لك بارك الله فيك واصل ابداعكـ . أتمنى في الدروس القادمة وضع مسافات في الكلمات التي يشفرها المنتدى. وبالتوفيق. Dr.NaNo

V!rus bt 12-03-2011 12:51 AM

رد: تجنب الحقن (جزء 1) sQL Injection
 
بارك الله فيك

اجتياح الجراد 12-03-2011 10:41 AM

رد: تجنب الحقن (جزء 1) sQL Injection
 
يعطيك العافية

^_^

°l||l° نور الظلام °l||l° 12-04-2011 04:26 AM

رد: تجنب الحقن (جزء 1) sQL Injection
 
شكراالك :)

المفترس 12-05-2011 09:59 PM

رد: تجنب الحقن (جزء 1) sQL Injection
 
مشكور حبيبي
ههههههه فكرتن باستادة الفلسفة عندم وضعت طرح مشكل

المهم الله يجازيك

hk-nanou 12-06-2012 02:47 PM

رد: تجنب الحقن (جزء 1) sQL Injection
 
شكرا لك اخي الكريم على الموضوع ومعلومات القيمة

M.tµcX 03-11-2015 06:16 AM

رد: تجنب الحقن (جزء 1) sQL Injection
 
:cool: يعطيكك الف عافية يالغال

muhammadwh 07-21-2015 02:21 PM

رد: تجنب الحقن (جزء 1) sQL Injection
 
:icon30: :icon30: :icon30: :icon30: :icon30:

mimo-dz 01-10-2016 10:21 PM

رد: تجنب الحقن (جزء 1) sQL Injection
 
شرح مفيد تسلم بارك الله فيك


الساعة الآن 01:35 AM


[ vBspiders.Com Network ]


SEO by vBSEO 3.6.0