المؤهلات: السعودية وسلطنة عمان الأمن السيبراني CTF 2019. WriteUp

مرحبا يا هبر.

في الفترة من 7 إلى 9 فبراير 2019 ، جرت مرحلة التأهيل من المسابقة على موقع cybertalents ، والهدف من ذلك هو البحث عن المواهب الإلكترونية في سلطنة عمان والمملكة العربية السعودية. يشارك أشخاص من دول أخرى ، وفقًا لقواعد الحدث ، خارج المسابقة. تحت القط - تحليل مهام معينة.



تتكون المسابقة من 9 مهام ، أربعة منها من مستوى الصعوبة "السهل" ، أربعة منها "متوسطة" ، وواحدة "صعبة". لكل مهمة ، يتم إعطاء 50 و 100 و 200 نقطة ، على التوالي. يتم تصنيف المهام أيضا. أدناه هو حل لبعض المشاكل.

العودة إلى الأساسيات


سهلة ، تحليلات الويب
ليس الكثير من الخيارات إلى حد كبير. لا حاجة لفتح رابط من المتصفح ، فهناك دائمًا طريقة مختلفة
إعطاء رابط مثل example.com/somepage. عند النقر فوقه ، تتم إعادة توجيهنا (301 نقل دائمًا) إلى نفس الصفحة بخط مائل في النهاية ، وهي بدورها تعيد التوجيه إلى google.com:



لنجرب طلب POST إلى الصفحة الثانية:



var _0x7f88=["","join","reverse","split","log","ceab068d9522dc567177de8009f323b2"];function reverse(_0xa6e5x2){flag= _0xa6e5x2[_0x7f88[3]](_0x7f88[0])[_0x7f88[2]]()[_0x7f88[1]](_0x7f88[0])}console[_0x7f88[4]]= reverse;console[_0x7f88[4]](_0x7f88[5]) 

مرر الشفرة بلطف عبر تجميل JS:

 function reverse(_0xa6e5x2) { flag = _0xa6e5x2['split']('')['reverse']()['join']('') } console['log'] = reverse; console['log']('ceab068d9522dc567177de8009f323b2') 

العلم: 2b323f9008ed771765cd2259d860baec

انا احب الصور


الطب الشرعي الرقمي السهل
لقد ترك لنا أحد المتسللين شيئًا يسمح لنا بتتبعه في هذه الصورة ، هل يمكنك العثور عليه؟
الصورة مرفقة بالمهمة:


رابط الصورة

الحل
فتح في محرر عرافة. لاحظ أن تنسيق png يحتوي على مقطورة "IEND" (49 45 4E 44). نحن ننظر إلى النهاية:

يلاحظ أنه يتم إضافة معلومات إضافية إلى نهاية الملف. الافتراض الأول هو base32 ، لأن جميع الرسائل في حالة واحدة. فك تشفير:
FLAG{Not_Only_Base64}

أنا أحب هذا الرجل


الهندسة العكسية للبرامج الضارة
يمكنك العثور على كلمة المرور للحصول على العلم؟
ملف دان

الحل
تخطي الملف من خلال Detect It Easy:



افتح DNSpy x86

الملف صغير جدًا بالفعل ويتألف من حدث مستخدم واحد - Button_Click:

 string value = new string(new char[] { this.Letters[5], this.Letters[14], this.Letters[13], this.Letters[25], this.Letters[24] }); if (this.TextBox1.Text.Equals(value)) { MessageBox.Show(new string(new char[] { this.Letters[5], this.Letters[11], this.Letters[0], this.Letters[6], this.Letters[26], this.Letters[8], this.Letters[28], this.Letters[11], this.Letters[14], this.Letters[21], this.Letters[4], this.Letters[28], this.Letters[5], this.Letters[14], this.Letters[13], this.Letters[25], this.Letters[24], this.Letters[27] })); } 

أيضًا ، يتم الإعلان عن السلسلة في الفئة الحالية:
 public char[] Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ{}_".ToCharArray(); 

هناك حلان - في احصائيات وديناميات. أولاً ، نحل بالطريقة الساكنة:

 # text -   >>> for i in range(len(letters)): text = text.replace(f"this.Letters[{i}]", letters[i]) >>> print(text) string value = new string(new char[] { F, O, N, Z, Y }); if (this.TextBox1.Text.Equals(value)) { MessageBox.Show(new string(new char[] { F, L, A, G, {, I, _, L, O, V, E, _, F, O, N, Z, Y, } })); } 

عندما نتأكد من أن البرنامج غير ضار ، يمكننا تصحيحه في الديناميات. نضع نقطة الإيقاف (نقطة الإيقاف ، نقطة الإيقاف) في بداية الأسلوب ، وننظر في المتغيرات المحلية ، ونحصل على متغير القيمة ، وبعد ذلك سنصلك رسالة تحمل علامة.

العلم: FLAG{I_LOVE_FONZY}

مجرد مؤتمر آخر


سهل ، معلومات عامة
يدير مؤتمر الأمن السيبراني الشهير OWASP في مواقع مختلفة
العلم
Appsec

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


All Articles