
# بيئة مختبر قائمة على Docker لاستغلال ثغرة CVE-2019-5418 في Ruby on Rails (اجتياز المسار)، مع أوامر curl كإثبات للمفهوم (PoC) لقراءة ملفات الخادم العشوائية عبر ترويسات Accept مصمّمة خصيصًا.
هذا المشروع عبارة عن بيئة لاختبار وإعادة إنتاج ثغرة تضمين الملف المحلي في Ruby on Rails (CVE-2019-5418). تسمح هذه الثغرة بقراءة ملفات تعسفية داخل الخادم من خلال اجتياز المسار عبر رأس Accept.
Ruby on Rails هو إطار عمل لتطبيقات الويب يسمح للمطورين ببناء تطبيقات الويب بسرعة وسهولة.
تحتوي Ruby on Rails في إصدارات العرض (View) الأقل من 5.2.2.1، و5.1.6.2، و5.0.7.2، و4.2.11.1، والإصدار v3 على ثغرة تضمين ملف محلي.
عند استخدام render file في المتحكم (Controller) لتقديم عرض من خارج التطبيق، يحدد Rails موقع الملف بناءً على رأس Accept الذي يقدمه المستخدم. عند إرسال رأس Accept بقيمة مثل Accept: ../../../../../../../../etc/passwd{{، يمكن للمهاجم استغلال ثغرة اجتياز المسار لقراءة ملفات تعسفية.
قم بتشغيل الأوامر التالية لتجميع وبدء Ruby on Rails 5.2.2:
docker compose build
docker compose up -d
بعد بدء الخادم، يمكنك زيارة صفحة Ruby on Rails عبر http://your-ip:3000.

curl -H "Accept: ../../../../../../etc/passwd{{" http://localhost:3000/robots
تمت قراءة ملف تعسفي داخل الخادم بنجاح عبر رأس Accept.