23 تغريدة 24 قراءة May 05, 2022
في عام 2016 البرتقاله التايلندي @orange_8361 استقبل رسالة ترويجية من شركة uber، وبب عين هكرجية لاحظ رابط كان موجود تحت للـ unsubscribe والي كان مثل الي بالصوره ادناه ..
ولاحظ بالرابط الي فوق ان كان المتغير p داخله base64 ولمن سوى decoding للـ base64 وجد ان داخله json string مماثل لما ترونه ادناه
وبجنونه المعهود اضاف للقيمة الموجوده في خانة الـ user_id بيلود شرطي لاختبار وجود ثغره الـ SQLi
وهو sleep(12) = 1
بحيث كانه يقول اضافةً للـ query الاساسيه المستخدمه في الابلكيشن مع الـ user_id الي قيمته 5755 شوف لي اذا sleep(12) تساوي 1 ، فف اذا كان الموقع مصاب بيستغرق عشان ما يجيب النتيجة على الاقل 12 ثانيه، واذا مو مصاب بيسحب على الـ sleep وبيرد على الريكويزته اسرع
ملاحظه : sleep دايماً ترجع 0 فف الشرط بيكون خطأ فما بترجع نتيجة للـ query ولكن سوى رجعت نتيجة ولا لا ما يهمنا اهم شي نعرفه اذا نفذ الـ sleep فهو مصاب واذا ما نفذه فف هو مو مصاب
اضاف الـ sleep وصار البيلود مثل الي بالصوره ادناه ..
ورجع سوى له encoding بالـ base64 وحطه كك متغير للـ p مثل ما كان بالرابط الي بالبداية وضغط انتر ..
ثانيه ، ثانتين ، عشره ، اثنعش و يضبط البيلود وينام الموقع ١٢ ثانيه زي ما هو متوقع
الى هنا البرتقاله عرف ان الموقع مصاب ولكنه يحتاج اثبات اقوى من الـ sleep، مثل dump لليوزر و الهوست عشان يرسل التقرير للـ uber
ولكن الي ما قلته لك يا عزيزي القارئ ان نوع الثغره هذي Blind SQL Injection واذا تسمح لي اني اقولك ان
الـ SQL Injection له انواع والناس يحبون يحطونها ضمن تشعبات كثيره ما ودي اخوض فيها
ولكن الـ Blind SQL Injection باختصار ان الموقع المصاب لمن تحقنه او تلعب بالـ query حقته ما يرجع خطأ واضح او يعطيك نتيجة واضحه اذا حقنك كان صحيح
فهل يا ترى كيف حل هذي السالفه البرتقاله ؟
حلها عن طريق انه سوى كود بايثون مچكلم مثل ما تشوفون بالصوره ادناه ..
وظيفة الكود انه يطلع اليوزر والهوست تبع الـ database عشان يثبت ان الموقع مصاب بالـ SQLi
وطبعاً اليوزر والهوست يكون كذا شكلهم
<user>@<host>
1- بالبداية سوى import للمكتبات الي يحتاجها
2- بعدين سوى سترينق base فيه كل الحروف والارقام والرموز الي تصلح تكون باليوزر والهوست
3- حط هنا البيلود الاساسي الي موجود بالرابط الاصلي
4- بعدين سوى loop من 0 الى 30 عشان يطلع اول 30 كراكتر من اليوزر والهوست
5- يسوي لووب داخلي يمر على كل الحروف والارقام والرموز الي بالـ string تبع base
6- فيه هنا فنقشن الـ user() والي يحتوي على سترينق فيه اليوزر والهوست حق
الـ database
وايضاً فيه فنشن mid والي شرحها بالصوره ادناه والي وظيفتها تاخذ ثلاث ارقيومنتات اول ارقيومنت فيه سترينق والارقيومنت الثاني فيه الاندكس والارقيومنت الثالث فيه رقم ، وترجّع سترينق ابتداءً من الاندكس المعطى وتكمل منه الى العدد المكتوب بالارقيومنت الثالث
مثلاً MID("Ahmed",2,3)
الفنقشن تبدا العد من رقم 1 مو صفر مثل ما كنت متوقع سابقاً فف الحرف الي بالاندكس رقم 2 من السترينق "Ahmed" هو حرف الـ h ونكمل الى 3 حروف بحسب الارقيومنت الثالث بيكون الناتج "hme"
بكذا بيكون معنى البيلود المستخدم برقم 6 انه يجيب حرف حرف من اليوزر والهوست الموجوده بب user() ويقارن فيهم بب الحروف الموجوده بب base
ملاحظه :
⁃%d هو placeholder للرقم الي بيكون بب L (small) والي هو رقم الاندكس الي بيمشي من 0 الى 30
⁃%c هو placeholder للكاركتر الموجود في i والي هو يسوي لووب للسترينق base
فف بب اول اتيريشن لل لوب بيكون البيولد كذا
"5755 and mid(user(),0,1)='a'#"
اذا ما ضبط تتغير الـ a الى الـ b وهكذا الين ما تخلص الحروف الي بالسترينق base
7- يرجعهم بصيغة json ويسوي لهم encoding بالـ base64 ويرسل GET Request للرابط
8- فف اذا كان الشرط صحيح وكمل الموقع شغله ورجع صفحة فف نعرف ان الحرف الي خمننا عليه صح فف يطبعه ويسوي break للـ لوب عشان يخمن الحرف الي بعده
وهكذا الين ما يجيب الحروف كلهم لليوزر والهوست
شغل البرتقاله السكربت وانتظر ولا حرف ورى حرف قاعد يجيه لين اكتمل وطلّع اليوزر والهوست تبع الداتابيس المستخدمه بالموقع
ولكن خوذوا هذي الصدمه على قولة ابو طلال الحمراني ..
رداً على تقريره قالت Uber ان ترى الداتابيس مو موجوده على سيرفراتنا، ولكن عطوه باونتي على الثغره هذي لانه يستطيع المهاجم من خلالها استخراج معلومات المستخدمين لبرنامج Uber
وعلق الكاتب بنهاية التقرير ان ترى يمديك ما تتفلسف مثل البرتقاله وتطفي مخك وتشغّل اوتوميتد توولز مثل sqlmap
والى هنا نكون وصلنا للنهاية، لا تنسون تسوون لايك وسبسكرايب وشير واذا انت على التويتر فعل الجرس عشان يوصلك جديدنا اول باول ..
المصادر:
- الكتاب الاخضر
Real-World Bug Hunting
- hackerone.com
- بهارتي الخاصه 👨🏻‍🍳
لا تنسون المسلمين من دعائكم 🤍🙏

جاري تحميل الاقتراحات...