حل تحدي Micro-CMS v2 من Hacker101

 

حل تحدي Micro-CMS v2 من Hacker101

حل تحدي Micro-CMS v2 من Hacker101


في هذا التحدي من Hackerone. نبدأ ببعض التلميحات الخاصة بالعلم الاول:

  • Regular users can only see public pages
  • Getting admin access might require a more perfect union


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

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

بدءت ببعض عمليات الحقن باستخدام الفارزة (') و ('admin)

micro-cms-v2-sqli


اضافة فارزة تسبب في ظهور رسالة خطأ Internal Server Error وهذا مؤشر جيد على وجود ثغرة sqli

micro-cms-v2-sqli


فكرت في فتح برنامج burpsuit وعمل تخمين على اسماء المستخدمين و كلمات المرور. ولكن الموضوع ياخذ وقتاً طويلا.

جربت اكثر من بايلود ولكنني واجهت صعوبة في تخمين اسم الجدول وذلك لان ثغرة الحقن هي من نوع blind .  في النهاية قمت ببعض الغش ☺️ وبحثت عبر الانترنيت ووجدت أن اسم الجدول هو admins

البايلود النهائي سيكون بالشكل التالي
' UNION SELECT 'pass' AS password FROM admins WHERE '1' = '1

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

pass




micro-cms-v2-sqli


 بعد الضغط على زر submit ظهرت لي رسالة تقول أنه تم تسجيلي بنجاح

micro-cms-v2-sqli


الضغط على زر Private Page يؤدي الى الحصول على العلم الاول

micro-cms-v2


التلميح للعلم التالي يقول:
  • What actions could you perform as a regular user on the last level, which you can’t now?

وترجمتها (ماهي الافعال التي يستطيع المستخدم العادي في المرحلة السابقة التي لاتستطيع فعلها الآن؟)

كذلك صفحة changelog تقول: “This version fixed the multitude of security flaws and general functionality bugs that plagued v1. Additionally, we added user authentication; we’re still not sure why we didn’t think about that the first time, but hindsight is 20/20. By default, users need to be an admin to add or edit pages now.”

استخدمت برنامج burpsuit لتعديل الريكوست ولم استطيع الحصول على نتيجة. لاحقاً تعلمت انه يمكنني استخدام ميثود مختلفة باستخدام اداة curl من سطر الاوامر فاصبح الامر النهائي:
curl -X POST https://7b44997630caaec756ff4da81538e9c9.ctf.hacker101.com/page/edit/1

على الفور حصلت على العلم الثاني

micro-cms-v2-flag2


التلميح الخاص بالعلم الاخير : Credentials are secret, flags are secret. Coincidence?  قررت استخدام burpsuite لايجاد هذا العلم . خطتي هي عمل bruteforce لاسم المستخدم وكلمة المرور على امل ان لا تكون كلمة المرور معقدة. في الماضي عند حل بعض التحديات على موقع hacker101 كان اسم المستخدم وكلمة المرور عبارة عن اسماء اولية firstnames جربت استخدم rockyou.txt ولكن الموضوع استغرق وقتاً طويلا.

قررت استخدام وردليست من مستودع github الخاص بتحديات hacker101 والتي تحتوي على الاسم الاول فقط على امل ان يكون التحدي يعمل بالطريقة التي توقعتها . استخدمت burusuite وقمت باعتراض الريكوست ثم قمت بارسال الريكويست الى الـ intruder.

micro-cms-v2

بعد ضبط الـ positions واختيار الوردليست , بدءت الهجوم ووجدت ان اسم المستخدم هو betsy . حيث ان حجم الريكوست اكبر من باقي الريكويستات

micro-cms-v2


عند ادخال اسم المستخدم besty وكلمة مرور عشوائية لاحظت ظهور رسالة جديدة Invalid password . وهذا يعني اننا عرفنا اسم المستخدم الصحيح. بقي لنا تخمين كلمة المرور . بعد تخمين كلمة المرور وجدت ان كلمة المرور teresa يظهر لنا رد بحجم مختلف مما يعني انها كلمة المرور الصحيحة

Invalid password


باستخدام بيانات تسجيل الدخول الجديدة تمكنت من تسجيل الدخول بنجاح والحصول على العلم الثالث

micro-cms-v2

الحمد لله انهينا التحدي . انتظروني في مقالات وتحديات اخرى ان شاء الله.



 


تعليقات