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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-12399 — Alex Reservations: Smart Restaurant Booking <= 2.2.3 - مصادق عليه (مدير+) رفع ملف تعسفي | Kitploit
أدوات/GitHubGitHub/d0n601/cve-2025-12399
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقأداة الوصول عن بعد
GitHubd0n601/cve-2025-12399

CVE-2025-12399

Alex Reservations: Smart Restaurant Booking <= 2.2.3 - مصادق عليه (مدير+) رفع ملف تعسفي

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Alex Reservations: الحجز الذكي للمطاعم <= 2.2.3 - رفع ملفات تعسفي للمصادق عليهم (مدير+)

يحتوي إضافة ووردبريس Alex Reservations (الإصدارات 2.2.3 والإصدارات الأقدم) على ثغرة رفع ملفات تعسفي تسمح لمسؤولي ووردبريس المصادق عليهم برفع ملفات PHP خبيثة إلى الخادم، مما قد يؤدي إلى تنفيذ تعليمات برمجية عن بُعد.

خلاصة الاستغلالات

تم توفير إثبات مفهوم CVE-2025-12399.py لتوضيح قيام مهاجم عن بُعد برفع shell.php وتنفيذ تعليمات برمجية عن بُعد:

root@kitploit:~
python3 ./CVE-2025-12399.py https://TARGETSITE.com admin "$PASSWORD"                                                                                            
[+] Target: http://TARGETSITE.com
[+] Username: admin
[+] Nonce obtained: 022b25d0a5
[+] File uploaded successfully!
[+] Shell URL: https://TARGETSITE.com/wp-content/uploads/alex-reservations/2025/10/shell.php
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

الوصف الفني

توجد الثغرة في ملف UploadFileController.php عند نقطة النهاية /wp-json/srr/v1/app/upload/file. تفتقر وظيفة الرفع إلى التحقق السليم من الملفات، وتقوم فقط بتنظيف أساسي لاسم الملف باستخدام نمط regex. وهذا يسمح لمسؤولي ووردبريس المصادق عليهم برفع ملفات اعتباطية، بما في ذلك ملفات PHP التي يمكن تنفيذها على الخادم.

تحليل مسار الهجوم

المصدر: إدخال المستخدم من $_FILES['file'] (السطر 13) المُستقبل (Sink): copy($file['tmp_name'], $target_dir_file) (السطر 38)

تحدث الثغرة للأسباب التالية:

  1. تسجيل المسار: يتم تسجيل نقطة نهاية الرفع في routes.php.
  2. الوصول إلى المتحكم: الصف UploadFileController يرث من الصف الأساسي Controller.
  3. معالجة الإدخال: بيانات الملف المتحكم فيها من $_FILES['file'] تُعالج مباشرة دون تحقق.
  4. معالجة الملف: يتم فقط تطبيق تنظيف أساسي لاسم الملف باستخدام regex: preg_replace('/[^a-z0-9_\.\-[:space:]]/i', '_', $file_name) (السطر 50)
  5. تخزين الملف: تُحفظ الملفات في wp-content/uploads/alexr-uploads/YYYY/MM/ دون التحقق من نوع MIME أو فرض قيود على امتدادات الملفات.

موقع الكود المعرّض للثغرة

الملف: includes/application/Alexr/Http/Controllers/UploadFileController.php الأسطر: 11-53

root@kitploit:~
public function upload(Request $request)
{
    $file = $_FILES['file'];  // SOURCE: User input ([line 13](https://plugins.trac.wordpress.org/browser/alex-reservations/trunk/includes/application/Alexr/Http/Controllers/UploadFileController.php#L13))
    
    // Target dir / url
    $upload_dir = wp_upload_dir();
    $date = evavel_date_now()->format('Y/m');
    $base_dir = $upload_dir['basedir'].'/'.ALEXR_UPLOAD_FOLDER.'/'.$date;
    $base_url = $upload_dir['baseurl'].'/'.ALEXR_UPLOAD_FOLDER.'/'.$date;

    if (!file_exists($base_dir)) {
        $folder_created = wp_mkdir_p($base_dir);
        if (!$folder_created) {
            return $this->response([
                'success' => false,
                'error' => __eva('Error creating folder.')
            ]);
        }
    }

    $file_name = $file['name'];
    $file_name = preg_replace('/[^a-z0-9_\.\-[:space:]]/i', '_', $file_name);  // Only basic sanitization ([line 50](https://plugins.trac.wordpress.org/browser/alex-reservations/trunk/includes/application/Alexr/Http/Controllers/UploadFileController.php#L50))

    $target_dir_file = $base_dir.'/'.$file_name;
    $target_url_file = $base_url.'/'.$file_name;

    $result = copy($file['tmp_name'], $target_dir_file);  // SINK: Direct file copy ([line 38](https://plugins.trac.wordpress.org/browser/alex-reservations/trunk/includes/application/Alexr/Http/Controllers/UploadFileController.php#L38))

    if (!$result) {
        return $this->response([
            'success' => false,
            'error' => __eva('Error saving file.')
        ]);
    }

    return $this->response([
        'success' => true,
        'file_path' => $target_dir_file,
        'file_url' => $target_url_file,
        'message' => __eva('Uploaded.')
    ]);
}
تنزيل الأداة