التواصل المباشر مع الادارة والاعضاء القدامى من خلال قناة التلغرام


قديم 11-23-2011, 10:05 AM   رقم المشاركة : 1 (permalink)
معلومات العضو
ReD-HaT
~|M4$T3R|~
 
الصورة الرمزية ReD-HaT
 

 

 
إحصائية العضو









ReD-HaT غير متواجد حالياً

 

 

إحصائية الترشيح

عدد النقاط : 10
ReD-HaT is on a distinguished road

.... تجنب الحقن (جزء 1) sQL Injection


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

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

  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

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

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





j[kf hgprk ([.x 1) sQL Injection

التوقيع

Vbspiders For Ever

mess with the best
die like rest

-----------------------------------
kevin-ffts@hotmail.fr
wep@hotmail.fr

 


التعديل الأخير تم بواسطة ReD-HaT ; 11-23-2011 الساعة 10:16 AM.

   

 

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة

الانتقال السريع


الساعة الآن 06:23 AM


[ vBspiders.Com Network ]

SEO by vBSEO 3.6.0