
اخترق هذه الخدمة لإثبات أن CVE-2022–29622 صالح
تم إنشاء هذه القاعدة البرمجية لمساعدة محترفي الأمن والمطورين على فهم لماذا أعتقد أن Formidable لم يكن عرضة لـ CVE-2022-29622. لقد كتبت تحليلي هنا: تحليل (عدم) الثغرة الأمنية CVE-2022–29622
نظرًا لأن البعض لم يفهمه، فكرت في توضيح وجهة نظري باستخدام كود فعلي قيد التشغيل.
الخادم مطبق في index.mjs. يستخدم إصدار Formidable 3.1.4 لرفع أي ملف تختاره.
لقد قمت بتكوين Formidable بشكل صريح كما هو موضح أدناه:
{
uploadDir: './uploads/',
keepExtensions: true,
}
بهذه الطريقة، سيتم رفع جميع الملفات إلى دليل uploads. لقد قمت بتمكين keepExtension حتى تتمكن من رفع ملفاتك باسم ملف ضار.
لإعداد الخادم وتشغيله، قم بتنفيذ الأوامر التالية من هذا الدليل:
npm install
npm run start
الأمر الأول يقوم بتثبيت جميع التبعيات، بما في ذلك الإصدار المناسب من Formidable. الأمر الثاني سيقوم بتشغيل الخادم.
بمجرد تشغيله، يمكنك الوصول إلى نموذج رفع الملفات الذي يوفره الخادم على: http://127.0.0.1:3000/
لقد قمت بتضمين ملفين باسم ضار في دليل examples... كـ أمثلة.
الملفات المقدمة باستخدام النموذج على http://127.0.0.1:3000 سيتم رفعها إلى دليل uploads.
التحدي هو معرفة ما إذا كان بإمكانك إثبات أن formidable عرضة لـ CVE-2022–29622. لتتمكن من ذلك، عليك جعل خادم الويب هذا ينفذ كودًا تقوم بتضمينه في الملف الذي تم رفعه أو في اسم الملف.
القواعد:
3000. يجب عليك عدم تعديل أي ملفات داخل هذا الدليل.إذا تمكنت من تنفيذ كود عشوائي باتباع القواعد المذكورة أعلاه بدقة، عندها فقط تكون قد أثبتت أن formidable كان عرضة لتنفيذ كود عشوائي.
اقتراح: ربما يكون أبسط توضيح بصري هو جعل الخادم يطبع سلسلة نصية، على سبيل المثال، "I'm awesome, I've got arbitrary code executed" على وحدة التحكم حيث قمت بتشغيل خادم الويب.