المقال المثبتامن وحماية تطبيقات الويبمواضيع عامةمواضيع ومقالات

مقال : ثغرة blind sql injection في موقع hootsuite

تم أرشفة هذا المحتوى


منذ فترة طويلة وتحديداً في عام 2014 وجدت ثغرة blind sql injection في شركة hootsuite ، شركة hootsuite من الشركات المعروفة جداً بخدمة إدارة شبكات التواصل الاجتماعي وبأكثر من 10 مليون مستخدم وكانوا قد بدأوا برنامج الابلاغات وقتها فقلت لابحث في هذه الشركة المعلاقة لعلنا نجد شيء مفيد أو نجد أي خطر يُهدد 10 مليون مستخدم لهذه الشركة ،حينها وصلت بالبحث إلى رابط فرعي لهم (https://learn.hootsuite.com) وبدات البحث .

 

اولاً : ماذا يعني Blind SQL inejction ؟

هو نوع من أنواع حقن SQL لكن في هذه الحالة فان الموقع لا يكون مصاب للحقن وانما يتم سؤال قاعدة البيانات حول صحة او خطأ الاوامر المدخلة ويحدد بعد ذلك الجواب من خلال القيم المرجعة ويستخدم هذا النوع عندما يكون تطبيق الويب غير مصاب للحقن المباشر وانما فقط اظهار رسائل الخطأ العامة .

 

ثانياً : البحث وتوصل الى النتيجة .

بعد تسجيلي لحساب في الموقع , بدأت البحث في النصوص والمتغيرات والراوابط الخارجية والمكتبات المستعملة .

وحينها لاحظت ان صور الاعضاء يتم اظهاراها عن طريق ملف واحد ويعيد عرضها حسب id كل حساب .

عندها قمت بنسخ الرابط . ولصقه

كان الرابط :

 

https://learn.hootsuite.com/view_profile_image.php?id=8807

وبعد الذهاب للصفحة ظهرت صورة احد الاعضاء طبيعياً !

المتغير الموجود في هذه الصفحة هو (id) لنقوم بعمل الخطوات السحرية لكل الثغرات وهي (‘)

https://learn.hootsuite.com/view_profile_image.php?id=8807’1

الصفحة بيضاء تماماً !!! هذه اشارة على انه ممكن يكون مصاب ب SQL لكن لا يوجد خطأ  ؟ لذلك قررت اختبر صحة العبارات لاعرف ان كان مصاباً أو لا

أختبار صحة العبارات

https://learn.hootsuite.com/view_profile_image.php?id=8807 and 1=1

 

وضعت في الرابط عبارة 1=1 وهي عبارة شرطية معناها عندما 1=1 وهو امر صحيح بالنسبة لقاعدة البيانات لذلك الصفحة ظهرت من دون اي خطأ !

بعدها وضعت عبارة خاطئة .

https://learn.hootsuite.com/view_profile_image.php?id=8807 and 1=2

وضعت عبارة 1=2 وهي عبارة خاطئة وبعدها عملت ذهاب لكن الصفحة بيضاء تماماً !!! وبهذا تاكدت ان الموقع مصاب بثغرة Blind SQL inejction

هذا فيديو بسيط للفكرة

https://www.youtube.com/watch?v=8ffMTayE46U

الان مثل هذا النوع من الثغرات لا يمكنك عمله يدوياً وسيكون الوضع صعب خصوصا لم اكن امكل خبرة كافية في ذلك الوقت ايضاً لذلك استعنت بSQLMAP في سحب القاعدة .

لذلك كتبت الامر الخاص بSQLMAP لسحب القاعدة وحصلت على

DBS

النوع :  boolean-based blind

اسم القاعدة : hootsuite_u_v2

تم اختراق موقع hootsuite !!! وكل شيء تمام لكن خفت ان اعمل LEAK للقاعدة لانهم كانوا سيحظرون اسمي من لائحة الشرف . لذلك قمت بالابلاغ بسرعة .

حصلت بعد مدة قصيرة

write-ups

كنت متعجب ان فريق مثل فريق hootsuite لا يعرف الSQL بعد تقديمي لكل المعلومات اللازمة ؟؟! .

وبعد عدة رسائل تم اصلاح الثغرة وحظري من الرد على الرسائل وقالوا سنرى امكانية اضافة اسمك الى لائحة الشرف !!

لكني لم افعل اي شيء بالقاعدة ؟؟!!

وقلت في نفسي لو سربت القاعدة كان افضل لكن تذكرت نحن هكر اخلاقيين !

كل ما اتذكره ان عدد المستخدمين في جدول الاعضاء هو 10 الاف او 100 الف لا اذكر الرقم بالضبط .

هذا كل ما في الامر .

بعض الروابط المفيدة لفهم blind sql injection

 https://www.owasp.org/index.php/Blind_SQL_Injection
https://en.wikipedia.org/wiki/SQL_injection
https://www.acunetix.com/websitesecurity/blind-sql-injection/
https://hackerone.com/reports/21899

أتمنى أن يكون هذا المقال قد نال إعجابكم وللإستفسار أُترك تعليقاً أو تواصل معي.

عبدالله حسام

مبرمج ومختبر اختراق من العراق مهتم بأمن المعلومات والثغرات البرمجية للتواصل معي عبر تويتر https://twitter.com/Abdulahhusam

مقالات ذات صلة

‫5 تعليقات

  1. شكرا لك اخي عبدالله على الموضوع الرائع ,
    رايي انك لو سحبت القاعدة وخزنتها عندك عشان يتعلموا من اخطائهم انو لما احد يحاول يساعدهم يتقبلوا منه …

  2. مع الاسف وقعت لي نفس المشكلة في موقع شراء برازيلي عدد الايميلات ضخم كان مصاب ب SQL Iinjection قمت بارسال المعلومات و الصور لكن دون رد

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى