SITIS CTF: كيف ساعد ختم CTF على الفوز



في 27 يناير 2019 ، تم عقد حدث SITIS CTF - مسابقة لأمن المعلومات لطلاب المدارس والكليات. شارك في البطولة حوالي 80 من الشباب المتخصصين وختم واحد. عقدت اللعبة في مكتب Jet Infosystems ؛ وكان فريق SITIS الشاب هو الجهة المنظمة للمهام والمنصة التقنية.


CTF


تنسيق الحدث هو CTF (خطر) القائم على المهام ، حيث يحل اللاعبون المهام (المهام) بمستويات صعوبة مختلفة. قد تكون الإجابة عبارة عن مجموعة أحرف أو عبارة تعسفية. لكل إجابة صحيحة (التقاط العلم) ، يتلقى المشاركون كمية معينة من النقاط. لا يتم الوصول إلى جزء من المهام إلا بعد قرار المهام السابقة.


تمكن المشاركون في لعبة CTF من حل جميع المهام تقريبًا ، لكن اثنين منهم لم يستسلموا: على الأرجح ، تأثر التعب - المتسللون والمتسللون الشباب "كسر" المهمة وعقولهم من الصباح إلى المساء.


المهمات


قدرة شرائية


سلسلة (200 نقطة)
تم تزويد المشاركين بمجموعة من وحدات البكسل ، تم تحويلها خصيصًا إلى سداسي عشرية ، من بينها سلسلة من وحدات البكسل الرئيسية. من خلال ترجمة عرافة إلى صورة ، يمكنك الحصول على صورة مع العلم.


اللوحة (200 نقطة)
تم تزويد المشاركين بأرشيف يحتوي على حوالي 1600 صورة أحادية اللون تصور أرقامًا بحجم 75 بايت. طريقة الحصول على العلامة هي إضافة أرقام في الصور باستخدام الأصفار كفواصل وترجمة القائمة الناتجة إلى تمثيل سلسلة.


كوتوروفا (250 نقطة)
انظر قسم "علاج الفراغ".


موسيقى (300 نقطة)
راجع قسم "علاج الفراغ".


عكس


رازمينكا (75 نقطة)
احتاج المشاركون إلى مهارات الرجوع الأولية ، وتم تخزين كلمة المرور كمتغيرات char في الفصل الرئيسي.


خلقي! (250 نقطة)
انظر قسم "علاج الفراغ".


كريبتو


حلم غريب (100 نقطة)
راجع قسم "علاج الفراغ".


همممممم (150 نقطة)
راجع قسم "علاج الفراغ".


الفرح


(25 نقطة)
احتاج المشاركون إلى العثور على علامة مطبوعة صغيرة على أحد الإطارات في صورة gif مع أختام.


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


العلم بيننا (100 نقطة)
تم إرفاق صورة بالمهمة.





بادئ ذي بدء ، سارع الجميع للبحث عن علامة في الصورة. من خلال البحث والتأكد من عدم وجود العلم ، كان من الضروري العودة إلى وصف المهمة وعنوانها وقراءتها بعناية مرة أخرى. والحقيقة هي أنه في المنافسة نفسها ، على أبواب الغرف التي أقيم فيها الحدث ، كانت هناك ملصقات غير عادية مع رموز QR.





بعد تجميع كل الأجزاء ، كان من الممكن الحصول على عبارة HRGRH {9I3371M95_7i4e3o3i}. من الواضح أن العلم يتم تتبعه هنا ، ولكنه مشفر. لم يتم إعطاء الكثير من النقاط للمهمة ، لذلك سيكون من المنطقي ألا يكون التشفير معقدًا. من خلال البحث عن الخيارات الرئيسية ، يمكن استنتاج أن عتباش كان هنا. علامة SITIS {9R3371N95_7r4v3l3r}.


STEGO


علة أو ميزة؟ (50 نقطة)
تم إرفاق مستند نصي بالمهمة ، حيث كان للوهلة الأولى فقط سطرين. ومع ذلك ، من خلال إلقاء نظرة فاحصة وتسليط الضوء على النص ، يمكن للمرء أن يرى الكثير من المساحات وعلامات التبويب في 39 سطرًا. أولئك الذين واجهوا هذا بالفعل يجب أن لا يواجهوا مشكلة في الحصول على العلم.


شعر (75 نقطة)
تم إعطاء المشاركين صورة لإطار من فيلم "لعبة التقليد". كان من الضروري العثور على الصورة الأصلية ومقارنتها ، ومن البيكسلات المختلفة لعمل صورة جديدة مع آيات من Byron ، وكان اسمها الأخير هو العلم.


قصة


مرحبًا (50 نقطة)
Droids Everywhere (100 نقطة)
حان الوقت للتهوية (105 نقطة)
المساعدة لا لزوم لها (125 نقطة)
تحتاج للعب الأيل (150 نقطة)
الاختبار الميداني الأول (175 نقطة)
يبدأ المرح P1 (200 نقطة)
يبدأ المرح p2 (205 نقطة)
بوس النهائي (300 نقطة)


ضمن المجموعة ، كان على المشاركين كشف العديد من المهام ذات الصلة.


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


في المهمة الثانية ، كان من الضروري البحث عن ملف به علامة في نظام الملفات. كان هناك أيضًا رابط يفتح الوصول إلى 3 مهام. بعد ذلك ، يجب العثور على العلم في الصفحة المحفوظة في أرشيف الويب. في المهام التالية ، كان على المشاركين اكتشاف متسلل شهير من مقطع فيديو على Youtube (كان اسمه واسم عائلته هما العلم) ، والعثور على حسابه في بعض منتديات "المتسللين" ، حيث كان هناك علم وتلميح لاختراق الموقع. ثم كان من الضروري إجراء هجوم على موقع CTfOS (العثور على كلمة مرور التجزئة في ملف تعريف الارتباط md5 واستخدام الخدمة للحصول على كلمة المرور الأصلية ، وكان العلم هو زوج المسؤول + كلمة المرور).


بعد ذلك ، كان عليك الاتصال عبر ssh ، ومشاهدة الأرشيف ، وتنزيله عبر sftp ، والتقاط كلمة مرور ، ومعرفة أنه بدلاً من الصورة الموجودة في الداخل ، يوجد أرشيف بالفعل ، واحصل على العلم. في النهاية ، كان رقم المنفذ "65530" ، كان من الضروري تحديد كلمة مرور (قاموس صخري) ، ثم تنسيق النظام وتقديم الأدلة إلى المنظمين.


التهاب


  1. INSTA (100 نقطة)
    لتحقيق النجاح ، كان عليك إنشاء منشور في Instagram مع صورة CTF وعلامات التصنيف المواضيعية.
  2. MINI-POLL (125 نقطة)
    كجزء من المهمة ، اجتاز المشاركون دراسة مصغرة.

Vraytapy


فيما يلي بعض التحليلات للمهام المثيرة للاهتمام من المشاركين في CTF.




كوتوروفا




Kotorova ، والتركيز على الثالث "س". مهمة ل 250 نقطة من أصل 300 ممكن. يتم إعطاء اللاعب صورة (انظر أعلاه) ونص غريب يتكون من الكلمات "Miu" و "Meow" و "FRR" و "Face".



من خلال التحليل البصري للصورة (والفضول في الماضي) ، نحن نفهم أن النص المصدر ليس سوى لغة الأبقار مع المشغلين المستبدلين. بعد إجراء عمليات الاستبدال التالية ، يمكنك الحصول على رسالة "cow": Miu => MOo، Meow => MoO، RDF => OOO، Lik => Moo. قم بتشغيل الكود الناتج من خلال المترجم الفوري والحصول على الرمز المميز المطلوب:






حلم غريب ...


من الغريب أن فكرة هذه المهمة جاءت إلى أذهان أحد المنظمين بعد الاستيقاظ صباحًا باردًا في شهر يناير. وصف المهمة:


حلمت بمهمة هنا ، تحقق من قابلية الحل pzh: 3

من الاسم والوصف ، من السهل تخمين أن الإشارة تذهب إلى ديمتري إيفانوفيتش ، أي مندليف. الآن دعونا نرى ما لدينا في الملف:


0x53 0x49 0x54 0x49 0x53 0x7b 0x6d 0x65 Mx3c 0x65 0x6c 0x65 0x65 Mx17 0x5f 0x65 Mx21 Mx27 0x5f Mx4b Mxf Mx39 Mx3a 0x6d 0x65 Mx7 Mx75 0x7d 

عرافة ، ولكن مع بادئات "M" غريبة في بعض الأماكن.
نحن نترجم HEX إلى ASCII ونحصل فورًا ، للوهلة الأولى ، على علامة مكسورة:




بعد ترجمة Hex فقط مع البادئة "M" إلى النظام العشري ، نحصل على التسلسل التالي:


 60 23 33 39 75 15 57 58 7 117 

نتذكر الوصف.




اجمع بين ASCIInut HEX و Mendeleev's واحصل على العلم.




موسيقى


فكرنا في كيفية ترجمة النص إلى ملاحظات لفترة طويلة ، وأخيراً تم تحقيق الفكرة:




بادئ ذي بدء ، تقرر ترجمة النص إلى تمثيل رقمي باستخدام ord ()
"awsm_msic"
يتم ترك مسافة عن قصد في البداية حتى لا تفسد البتات الأخيرة الحرف الأخير.


 ord(): [97, 119, 115, 109, 95, 109, 115, 105, 99, 32] 

ثم ترجمتها إلى بايت:


 >>bin(): ['01100001', '01110111', '01110011', '01101101', '01011111', '01101101', '01110011', '01101001', '01100011', '00100000'] 

سلسلة:


 concatenate:01100001011101110111001101101101010111110110110101110011011010010110001100100000 

تقسيم النص الناتج إلى أحرف من ثلاثة (ثلاثة توائم). نظرًا لأنه يمكن ترميز 8 أرقام في النطاق من 000 إلى 111 ، فسوف نستخدم مجموعة من ملاحظات الأوكتافين C5 و C6 ، تتكون من 8 ملاحظات:


 ['011', '000', '010', '111', '011', …] ["C5","D5","E5","F5","G5","A5","B5","C6"] 

يبقى قليلاً فقط ، نحن نعيد ترجمات الثلاثة إلى نظام الأرقام العشرية ونجمع قائمة جديدة ، استنادًا إلى مؤشرات الملاحظات:


 ['F5', 'C5', 'E5', 'C6', 'F5', 'A5', 'B5', 'F5', 'F5', 'F5', 'E5', 'A5', 'C6', 'A5', 'A5', 'A5', 'F5', 'G5', 'B5', 'B5', 'G5', 'A5', 'G5', 'F5', 'D5', 'C5'] 

نكتب ملف MIDI ، إذا كنت ترغب في ذلك ، يمكنك استخدام أي أداة لإعطاء الملاحظات صوت.






عكس 250


بادئ ذي بدء ، نقوم بتفكيك البرنامج (باستخدام IDA) ، ونحول إلى C ونبحث عن خطوط مشبوهة:




يمكننا أن نستنتج أن الإصدار v39 هو العلم الذي في الحالة الخاطئة سوف يعطينا السلسلة التي نبحث عنها.
ننظر حيث يتغير العلم:




عند النظر إلى هذا الرمز ، من الصعب تحديد المتغيرات التي يجب أن نجريها مع تغيير العلامة. بالنقر المزدوج على متغير Buffer ، نصل إلى النافذة لعرض رصة البرنامج. يجب أن نفهم أن Buffer عبارة عن سلسلة (حيث يمكننا إدخال أي شيء في البرنامج) ، مما يعني أننا سنضع هذا الحجم بحيث تكون جميع متغيرات var_xxx فيه:




أصبحت قراءة الكود أسهل بكثير:




الآن النظر في كتلة تغيير أحرف سلسلة لدينا.




نحن نحلل:


  1. v38 هي مجموع قيم المتغيرات الرمزية (حسب الحالة 1231).
  2. يتم تبديل عنصر السطر 7 (Buffer_6) بمقدار 7 بت ، أي من المستحيل عكس التحويل (بغض النظر عن الرقم الذي تم تحويله هنا ، ستكون النتيجة 0).
  3. يتم استخدام الحلقة ذات المتغيرات v35 و v41 و v34 لتحويل الانتباه (نسخ قيمة سطر واحد إلى آخر لحفظ الترجمة الصحيحة من ثنائي إلى سداسي عشري ، حيث نغير الخط الأصلي).
  4. الدورة مع الأحرف الثلاثة الأولى هي الضرب البسيط في 2.
  5. الرابع الى السادس اصعب قليلا. من الضروري حل المعادلة (للحرف الرابع سيبدو كما يلي: (x * 2) ^ 57 = 95). على الرغم من أن XOR عملية لا رجعة فيها ، فمن الممكن تمامًا اختيار قيمة باستخدام التعداد ، وحتى مع المهارات الأولية ، يمكن إكمال ذلك في بضع ثوانٍ.
  6. انتهت التغييرات ، ونعود إلى مجموعة الشروط ونضع معادلات بسيطة للعناصر المتبقية.

لدينا (x - غير معروف ، 0 غير معروف): 000000x00000x. مجموع القيم = 1231. قم بطرح الأرقام المعروفة من هذا الرقم واحصل على مجموع الأرقام غير المعروفة = 164. لذلك ، نأخذ أي حرفين يكون مجموعهما 164. استنادًا إلى معنى الكلمة الأولى ، فليكن "R" و "R".




بعد إدخال المفتاح ، سنحصل على العبارة المطلوبة.




همممم


عند فتح المهمة ، نحصل على ملفين: data.txt و Hmmmm.png:






من الواضح ، السطر الأول في الملف النصي هو بعض الترميز. في الواقع ، هذا هو Base64 العادي ، وإن كان بدون علامة "=" غريبة عليه في النهاية.


بعد فك تشفيرها ، نرى أرقامًا تشبه بشكل مثير للريبة الدرجات:




بالفعل في هذه المرحلة ، يمكن للمرء أن يخمن أننا نتحدث عن بعض الشبكات وزاوية ميلها. ولكن أين هو الاستنسل نفسه؟ بالطبع ، لا يزال لدينا مجموعة ثنائية من الأرقام يكون فيها الرقم الساحق 1 و 8 أصفار فقط.


اختبار الفرضية بسيط للغاية. ذرة تقول لدينا 256 حرفا. تمامًا كما في الجدول في الصورة ، ومن هذا المنطلق يمكننا أيضًا تخمين أن الشبكة مربعة.




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


في الواقع ، ها هي:




لنفترض ، ولكن دون جدوى ، أن هذا هو الموقف المحدد لشبكة شعرية بالنسبة إلى 0 درجة. ثم ، باستخدام المعالجات في Excel أو Photoshop ، اكتب الأرقام من النوافذ:




أي نوع من الأرقام يمكن أن تكون هذه؟ سداسي عشري ... عرافة ، بالطبع!




الصيحة ، نحن على الطريق الصحيح ، يبقى تحويل الشبكة وكتابة الأرقام المتبقية:


اتضح أن التسلسل المطلوب هو في الخلايا الزرقاء ، وهذا هو:


 53 49 54 49 53 7b 43 61 72 64 61 6e 6f 5f 69 73 5f 70 72 6f 75 64 5f 6f 66 5f 79 6f 75 5f 21 7d 



والنتيجة هي: SITIS {Cardano_is_proud_of you !}


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


ومع ذلك ، على الرغم من بساطة ووضوح المهمة ، لم يتمكن سوى فريق واحد من حلها - "10x" ، على الرغم من هذه التلميحات:





الأعضاء


وكانت المنافسين على حد سواء CTF'ers ومبتدئين.


المركز الأول ، MLPWN:


أحب فريقي ذلك. أما بالنسبة للمهام ، فلم يكن من الصعب للغاية بالنسبة لنا ، كفريق من ذوي الخبرة ، أن نحلها ، وكان من الملاحظ أن المهام صُممت للمبتدئين ، فلم يلقوا بفكرة مهمة قاسية صعبة ، وكم رسالة مثيرة للاهتمام ، وهي رسالة رائعة للغاية. بالنسبة للمنظمة ، كان كل شيء على أعلى مستوى ، والذي ، بصراحة ، لا يوجد دائمًا في المراكز المدرسية. أتمنى حظاً سعيداً لفريق SITIS في تنظيم SITIS CTF التالي!

2 مكان ، 10x


المركز الثالث ، معاينة:


كانت هذه أول زيارة لي إلى CTF ، ومنذ ذلك الحين شاركت فقط في CTF في سان بطرسبرغ. كانت المهام ممتعة وصعبة للغاية ، ولكن المشكلة الوحيدة التي كانت بسيطة في أغلب الأحيان كانت سقوط الإنترنت. أحب أن أحضر العام المقبل وآمل أن يتحسن نظام SITIS CTF فقط. أتمنى النجاح للمنظمين في كل من المسابقات وتنظيم مثل هذه الأحداث.



كان الفائز هو فريق MLPWN - My Little Pony (Pwnie).




بين المشاركين كان هناك عدد غير قليل من الفتيات =)




كانت المعركة جادة ، وأحيانًا كانت مساعدة المنظمين مطلوبة:




المنظمون


يتم تنظيم هذا الحدث من قبل فريق SITIS الشاب. شركاء CTF هم Jet Infosystems (الشريك العام لـ SITIS CTF ) و Group-IB و Elefus و BCS و FSBI Research Institute Voskhod.






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


LV: قل بعض الكلمات عن التميمة الخاصة بك - ختم =)

الليثيوم: في الواقع ، هذا ليس بالضبط التميمة ج: لقد جمعنا هذا الفريق مؤخرًا نسبيًا ، قبل أن جميعهم (جيدًا ، جميعهم تقريبًا) كانوا في فرق مختلفة أو لم يكن لديهم فريق على الإطلاق. كان ثيودور في فريق SEAL ، الذي يعد التميمة الختم. ثيودور جره. توقعنا له فعليًا إحضار المهر الذي فاز به في سيريوس كجائزة Pwnie)



يقول الختم: لا تكون ختمًا ، العب CTF ، ارفع مهاراتك!


يحتفظ المنشور علامات الترقيم والإملاء أعضاء CTF.

Source: https://habr.com/ru/post/ar437996/


All Articles