23 تغريدة 10 قراءة Dec 17, 2022
"انت دايماً تغير كلمة سر حسابك على كيفك وقت ما شئت ولكن ماذا لو تم تغير كلمة سر حسابك رغماً عنك وانت ما تدري ؟"
جمله ابتدأ فيها صاحب البلوق (الي بحطه بالمصادر تحت) في شرحة لثغرة الـ CSRF واعجبتني الجمله وحبيت ابدي فيها شرحي لنفس الثغره
مبدئياً الثغره تعريفها بالعامي ان يقوم الهكر بإجبار الشخص المستهدف بعمل عمليه معينه ( ارسال ريكويزت ) على سبيل المثال لا الحصر تغير كلمة سر او تغير ايميل والامثله بالموضوع تطول
ولكن كيف يحدث ذلك وما هي الاسباب المؤاتيه لمثل ذلك كل هذا واكثر تجدونه هنا في هذا الثريد
قبل لا نبدا في الغوص بالموضوع ودي اعرّج على اكثر من نقطه منها الـ Cookies و الـ Session
باي موقع كينونتك الادميه تنحصر في حسابك داخل الموقع الي يتم التعرف عليه عن طريق اسم المستخدم او الايميل وكلمة المرور
لمن تجي بتسجل دخول لموقع فانت بعلم منك او بدون علمك بتمشي بالخطوات التاليه:
١- تروح صفحة تسجيل الدخول وتدخل اسم المستخدم تبعك او الايميل مع كلمة المرور
٢- بعد ما تحط بياناتك في صفحة الدخول بياخذ الموقع بياناتك وبيشيك على هذي البيانات بالداتابيس
٣- ف اذا كانت البيانات الي دخلتها صحيحة، الموقع بيسوي لك session ويعطي هالـ session رقم خاص ويحفظ السيشن عنده بالسيرفر
٤- وعشان كل ما يزور متصفحك صفحة بالموقع يتعرف عليك السيرفر وما يطلب منك تدخل اسم المستخدم وكلمة المرور كل مره، السيرفر يعطي متصفحك كلمة او text صغير ينحفظ بالمتصفح اسمه cookie، والمتصفح كل ما يبي يتواصل مع الموقع هذا بيرسل له الكوكيز اوتوماتيكياً
عن طريق الـ cookie هذا تقدر من تسجل دخول تفتر بالموقع على كيفك بدون ما تسجل دخول مره اخرى
وطبعاً اذا جيت بتسجل خروج فف السيرفر ببساطه يحذف ملف السيشن تبعك، فف يصير حتى لو دخلت صفحة ومعاك الكوكيز القديم بيشيك السيرفر هل فيه سيشن مربوطه مع الكوكيز الي جاي فيه؟ وبالحاله هذي وبما ان السيرفر حاذف السيشن القديمه تبعك بيطلب منك تسجيل الدخول من جديد عشان يعطيك كوكيز جديد
المشكله هنا ان الكوكيز هو عباره عن بطاقتك الاحوال بالموقع فف لو احد اخذ او استعمل الكوكيز حقك فف الموقع بيعتبر انك انت الي قاعد تتواصل معاه فف الشخص الي يملك الكوكيز حقك يقدر يلعب بحسابك لعب ما دامت السيشن المربوطه بالكوكيز صالحه للاستعمال
ثغرة الـ CSRF والتي تسمى باسماء عديده منها :
⁃Cross-Site Request Forgery
⁃Client-Site Request Forgery
⁃one-click attack
⁃session riding
⁃Hostile Linking 
⁃XSRF
كل هالاسماء لها دلالات لجوانب معينه للثغره، ولكن نبي نجيب مثال غير واقعي بس يوضح فكرة الثغره
لنفترض فيه موقع اسمه bank.com والمعني بكونه حساب البنك الخاص فيك والي فيه فلوسك كلها، والموقع هذا فيه صفحة تحويل فلوس، والي يسالك فيها عن حاجتين:
١- حساب الشخص الي بتحوله الفلوس
٢- قيمة الفلوس الي بتحولها له
وبيحولك لصفحة الـ url حقها عباره عن
bank.com[حساب الشخص الي بتحوله الفلوس]&amount=[قيمة الفلوس الي بتحولها]
الرابط هذا تم صنعه لك من قيمة المدخلات الي ادخلتها
لنفترض ان اسم الشخص schizo وقيمة الفلوس 500 على حسب عملة بلدك فف الرابط بيكون
bank.com
وبعد ما تدخل الرابط هذا الي تم تحويلك له من بعد صفحة التحويل، البنك يحول من فلوسك 500 الى حساب schizo
هذا شي طبيعي ولا فيه اشكاليه
ولكن ماذا لو تم ارسال لك رساله عبر اي قناة من قنوات تواصل معاك، وفي هالرساله الرابط ادناه؛
bank.com
فف الي يصير انه لمن تكون مسجل دخول بالموقع، متصفحك بيرسل الريكويزت مع الكوكيز تبعك، فف الموقع بيشيك هل فيه سيشن مربوطه مع الكوكيز هذا ؟
بمثالنا هذا وبما انك مسجل دخولك بالفعل بموقع البنك فف بيقول ايه فيه، ويتعرّف عليك موقع البنك ويشوف ان حسابك يبي يحول فلوس لحساب الهكر بقيمة 500 ، وبما ان الكوكيز المستعمل في طلب التحويل تبعك فف البنك بيحول الفلوس من حسابك الى حساب الهكر
هنا نقول ان الهكر عمل CSRF attack واستطاع ان يسرق فلوس منك، وهنا تتضح جلياً فكرة الثغره
في بداية عام 2016 كان فيه خدمه مقدمه من shopify تتيح لمالكين المتاجر على منصة shopify بانهم يربطون حساباتهم بالتويتر عشان يغردون بالتويتر عن منتجاتهم من داخل المتجر
وبنفس الوقت كان فيه صفحة تتيح لملّاك المتاجر انهم يفصلون الربط او يسوون disconnect لحسابات التويتر المربوطه مع متاجرهم من خلال الرابط ادناه؛
عن طريق الدخول لهالرابط، متصفح مالك المتجر يرسل الريكويزت الموجوده بالصوره ادناه:
نلاحظ ان فيه خانه cookie وداخلها __twitter-commerce_session لها قيمة الكوكيز المربوط مع سيشن مالك المتجر فف بينفذ طلب فصل الربط مع حساب مالك المتجر بالتويتر باسم مالك المتجر
فف لو مالك متجر يكون داخل منصة shopify بمتصفحه ودخل موقع فيه كود الـ html ادناه بنفس المتصفح فف الي بيصير كالاتي:
١- تاق الـ img بيخلي المتصفح برسل ريكويزت للرابط الي داخله عشان يستعرض الصوره ( بس مافي صوره، تم استخدام التاق بس عشان يرسل الريكويزت )
٢- الريكويزت الي بيسويه المتصفح بتحمل الكوكيز تبع مالك المتجر بمنصة shopify
٣- الموقع بيشيك على الكوكيز وبيحصل سيشن موجوده لهذا الكوكيز بحساب مالك المتجر الي دخل الرابط
٤- الموقع بيفصل حساب المتجر عن حساب التويتر من غير ما يدري مالك المتجر الي طاح بحيلة الهكر هذي
والى هنا ننتهي من شرح ثغرة الـ CSRF، لا تنسوننا واخواننا المسلمين في شتى بقاع الارض من خالص الدعاء 🌷
اتمنى اني قدرت اوضح فكرة الثغره، ولعلي في ثريد قادم باذن الله بشرح الـ SOP و الـ CORS الي كانوا هم بداية الهامي في شرح هذا الموضوع عشان تكون ممهد حلو للمهتمين
المصادر؛
- بهاراتي الخاصه 👨🏻‍🍳
- البلوق ادناه
hackingarticles.in
- الكتاب الاخضر

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