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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-34832 — CVE-2024-34832 | Kitploit
أدوات/GitHubGitHub/julio-cfa/cve-2024-34832
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubjulio-cfa/cve-2024-34832

CVE-2024-34832

CVE-2024-34832

عرض المستودع
منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CubeCart - اجتياز الدليل قد يؤدي إلى RCE (CVE-2024-34832)

TL;DR

في لوحة الإدارة، تُستخدم المعاملات مثل _g و node لبناء المسار لتضمين ملفات .inc.php وتنفيذ كود PHP. يمكن لمستخدم ضار لديه القدرة على رفع ملفات .inc.php في أي مكان على الخادم استغلال ثغرة اجتياز المسار لتضمينها وتنفيذ كود ضار.

المتطلبات الأساسية

  • الوصول إلى لوحة الإدارة (أي صلاحيات تعمل، بما في ذلك عدم وجود صلاحيات على الإطلاق)؛
  • القدرة على رفع ملفات تحتوي على الامتداد .inc.php في أي مكان على الخادم (مثل الوصول إلى FTP، تطبيق آخر على نفس الخادم يسمح برفع الملفات، ثغرات جديدة في ميزات الرفع في CubeCart، إلخ).

الاستغلال

لنفترض أن هناك خادم FTP يعمل على نفس الخادم الذي تم تثبيت CubeCart عليه، وأن المستخدم قادر على رفع الملفات إلى موقع محدد. في حالتنا، لنفترض أن أي شيء يتم رفعه عبر FTP سينتهي في /opt/FTP_Example.

لنفترض أيضًا أن هذا المستخدم قام برفع ملف باسم path_traversal.inc.php عبر FTP، ومحتوياته هي كود PHP التالي <?php system('whoami;id;hostname;ls') ?>.

image

في البداية لا يوجد خطر في رفع مثل هذا الملف لأنه لن يتم تنفيذه ولا هو في دليل خادم ويب - مثل Apache - يمكنه تنفيذه.

قد يكون لهذا المستخدم نفسه صلاحيات محدودة جدًا أو حتى لا صلاحيات على الإطلاق في لوحة إدارة CubeCart، لكنه لا يزال قادرًا على تسجيل الدخول إليها. على سبيل المثال، أنشأنا مستخدمًا باسم julio بدون أي صلاحيات على الإطلاق.

image

بعد تسجيل الدخول إلى التطبيق باسم julio، بدأنا في اختبار المعاملات _g و node. لاحظنا أن هذه المعاملات تضيف .inc.php تلقائيًا إلى نهاية المسار وتبدو أنها تستخدم include() على ذلك الملف لتنفيذ كود PHP.

كما هو موضح أدناه، عندما لا يتم العثور على الملف، يتم إرجاع رسالة الخطأ التالية.

image

بدأنا نتساءل عما إذا كان بإمكاننا اجتياز المسار والوصول إلى ملف .inc.php في دليل آخر في الخادم - مثل مجلد FTP الخاص بنا.

نظرًا لأن لدينا ملفًا باسم path_traversal.inc.php في مجلد /opt/FTP_Example، حاولنا إضافة الكثير من /../../../ حتى وصلنا إلى الدليل الجذر، ثم أضفنا /opt/FTP_Example/path_traversal وأضاف التطبيق تلقائيًا .inc.php إلى نهاية المسار.

كما هو موضح أدناه، تم تنفيذ الكود بنجاح.

image

الاستنتاج

لاحظنا أن معامل node يقوم بالفعل بترميز الشرطات المائلة (/)، لكن _g لا يفعل. يجب على جميع المعاملات المستخدمة في بناء المسارات أن تقوم بترميز الشرطات المائلة لمنع ثغرات اجتياز المسار.

على الرغم من وجود متطلبات أساسية للاستغلال الناجح لهذه الثغرة - مما يقلل المخاطر بشكل كبير - إلا أنها لا تزال تستفيد من تصحيح. يمكنك الاطلاع في المراجع على كيفية قيام مؤلفي CubeCart بإصلاح هذه الثغرة وتطبيق الإصلاحات على نسختك الخاصة من CubeCart حتى يأتي إصدار رسمي معها مصححة بالفعل.

المراجع

  • https://github.com/cubecart/v6/issues/3586
تنزيل الأداة