مقال : ثغرة 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 لسحب القاعدة وحصلت على
النوع : boolean-based blind
اسم القاعدة : hootsuite_u_v2
تم اختراق موقع hootsuite !!! وكل شيء تمام لكن خفت ان اعمل LEAK للقاعدة لانهم كانوا سيحظرون اسمي من لائحة الشرف . لذلك قمت بالابلاغ بسرعة .
حصلت بعد مدة قصيرة
كنت متعجب ان فريق مثل فريق 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
أتمنى أن يكون هذا المقال قد نال إعجابكم وللإستفسار أُترك تعليقاً أو تواصل معي.
شكرا لك اخي عبدالله على الموضوع الرائع ,
رايي انك لو سحبت القاعدة وخزنتها عندك عشان يتعلموا من اخطائهم انو لما احد يحاول يساعدهم يتقبلوا منه …
مقال مفيد و رائع شكرا أخي
مع الاسف وقعت لي نفس المشكلة في موقع شراء برازيلي عدد الايميلات ضخم كان مصاب ب SQL Iinjection قمت بارسال المعلومات و الصور لكن دون رد
ممتاز جدا استمر
طيب يا استاذ حسام انا عندي موقع مصاب ب blind sql injection ممكن تتواصل معاي فقط ف طريقة الاستغلال
وهذا ايميلي
[email protected]