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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-4406 — Gravity Forms प्लगइन WordPress के लिए (संस्करण 2.9.28 तक परीक्षण किया गया) `gform_get_config` AJAX एक्शन में `form_ids` पैरामीटर के माध्यम से बिना प्रमाणीकरण के रिफ्लेक्टेड क्रॉस-साइट स्क्रिप्टिंग (XSS) के प्रति संवेदनशील है। | Kitploit
उपकरण/GitHubGitHub/hann1bl3l3ct3r/cve-2026-4406
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंग
GitHubhann1bl3l3ct3r/cve-2026-4406

CVE-2026-4406

Gravity Forms प्लगइन WordPress के लिए (संस्करण 2.9.28 तक परीक्षण किया गया) `gform_get_config` AJAX एक्शन में `form_ids` पैरामीटर के माध्यम से बिना प्रमाणीकरण के रिफ्लेक्टेड क्रॉस-साइट स्क्रिप्टिंग (XSS) के प्रति संवेदनशील है।

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

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

सभी देखें →

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

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

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

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

Gravity Forms <= 2.9.28 — बिना प्रमाणीकरण के Reflected Cross-Site Scripting gform_get_config form_ids पैरामीटर के माध्यम से

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

फ़ील्डमान
प्रभावित सॉफ़्टवेयरGravity Forms (WordPress प्लगइन)
विक्रेताRocketgenius, Inc.
भेद्यता प्रकारCWE-79: वेब पेज जनरेशन के दौरान इनपुट का अनुचित न्यूट्रलाइज़ेशन (Reflected Cross-Site Scripting)
CWE श्रृंखलाCWE-20 → CWE-116 → CWE-838 → CWE-79 (नीचे CWE विश्लेषण देखें)
प्रभावित संस्करण2.9.28 पर पुष्टि की गई (खोज के समय नवीनतम); पुराने संस्करण भी प्रभावित होने की संभावना
फिक्स्ड संस्करण2.9.30.1 (हॉटफिक्स)
CVSS 3.1 स्कोर6.1 (मध्यम)
CVSS 3.1 वेक्टरAV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
प्रमाणीकरण आवश्यककोई नहीं (बिना प्रमाणीकरण)
उपयोगकर्ता इंटरैक्शनआवश्यक (पीड़ित को हमलावर-नियंत्रित पेज पर जाना होगा या क्राफ्टेड लिंक पर क्लिक करना होगा)
खोजकर्ताAnthony Cihan — Obviam
खोज तिथि2026-03-04
प्रकटीकरण तिथि2026-03-18
CVE IDCVE-2026-4406

Wordfence सार्वजनिक रिकॉर्ड


विवरण

WordPress के लिए Gravity Forms प्लगइन (संस्करण 2.9.28 तक परीक्षण किया गया) gform_get_config AJAX एक्शन में form_ids पैरामीटर के माध्यम से बिना प्रमाणीकरण के reflected cross-site scripting (XSS) के प्रति संवेदनशील है। यह भेद्यता इसलिए मौजूद है क्योंकि उपयोगकर्ता द्वारा प्रदान किए गए form_ids मान बिना किसी सैनिटाइज़ेशन, एन्कोडिंग, या आउटपुट एस्केपिंग के सर्वर के HTTP प्रतिक्रिया में शब्दशः प्रतिबिंबित होते हैं। प्रतिक्रिया Content-Type: text/html; charset=UTF-8 हेडर के साथ दी जाती है, जिसके कारण ब्राउज़र प्रतिबिंबित सामग्री को HTML के रूप में पार्स और रेंडर करता है, जिसमें कोई भी इंजेक्टेड स्क्रिप्ट तत्व शामिल होता है।

एक बिना प्रमाणीकरण वाला हमलावर इस भेद्यता का फायदा उठाकर लक्षित WordPress साइट के ओरिजिन के संदर्भ में मनमाना JavaScript निष्पादित कर सकता है। चूंकि gform_get_config एक्शन के लिए एक मान्य config_nonce की आवश्यकता होती है, और यह nonce हर उस पेज के HTML स्रोत में सार्वजनिक रूप से एम्बेडेड होता है जो Gravity Forms फॉर्म लोड करता है, एक हमलावर एक्सप्लॉइट अनुरोध बनाने से पहले लक्षित साइट पर किसी भी सार्वजनिक पेज का अनुरोध करके आसानी से एक मान्य nonce प्राप्त कर सकता है।

सफल शोषण से हमलावर सत्र कुकीज़ चुरा सकता है, प्रमाणित उपयोगकर्ताओं (WordPress एडमिनिस्ट्रेटर सहित) की ओर से कार्य कर सकता है, उपयोगकर्ताओं को दुर्भावनापूर्ण साइटों पर पुनर्निर्देशित कर सकता है, पेज सामग्री को विकृत कर सकता है, या एडमिनिस्ट्रेटिव खाता निर्माण के माध्यम से स्थायी पहुंच स्थापित कर सकता है।


मूल कारण विश्लेषण

संवेदनशील एंडपॉइंट```

POST /wp-admin/admin-ajax.php

### असुरक्षित क्रिया```
gform_get_config

संवेदनशील पैरामीटर

args POST पैरामीटर एक JSON ऑब्जेक्ट स्वीकार करता है जिसमें एक form_ids ऐरे होता है। इस ऐरे के मान बिना सैनिटाइज़ेशन के JSON प्रतिक्रिया संरचना में ऑब्जेक्ट कुंजियों के रूप में उपयोग किए जाते हैं:```json {"form_ids":["ATTACKER_CONTROLLED_VALUE"]}

### प्रतिक्रिया व्यवहार

सर्वर `form_ids` मानों को संसाधित करता है और उन्हें प्रतिक्रिया बॉडी के अंदर JSON कुंजियों के रूप में प्रतिबिंबित करता है। प्रतिक्रिया HTML टिप्पणी मार्करों में लपेटी जाती है और `text/html` के रूप में प्रदान की जाती है:```
Content-Type: text/html; charset=UTF-8

<!-- gf:json_start -->{"success":true,"data":{"common":{"form":{"pagination":{"ATTACKER_CONTROLLED_VALUE":null}}}}}<!-- gf:json_end -->

यह शोषणीय क्यों है

  1. कोई इनपुट सत्यापन नहीं: form_ids मानों को पूर्णांक के रूप में सत्यापित, स्वच्छ या फ़िल्टर नहीं किया जाता है। सर्वर HTML टैग और इवेंट हैंडलर सहित मनमाना स्ट्रिंग सामग्री स्वीकार करता है।
  2. कोई आउटपुट एन्कोडिंग नहीं: form_ids मान बिना HTML एंटिटी एन्कोडिंग के प्रतिक्रिया बॉडी में परावर्तित होते हैं। <, >, ", और ' जैसे वर्ण बिना संशोधन के गुजर जाते हैं।
  3. HTML Content-Type: प्रतिक्रिया Content-Type: text/html; charset=UTF-8 के साथ प्रदान की जाती है, जो ब्राउज़र को प्रतिक्रिया बॉडी को HTML के रूप में पार्स करने का निर्देश देती है। परावर्तित मान के भीतर कोई भी HTML टैग ब्राउज़र के HTML पार्सर द्वारा तुरंत इंस्टैंशिएट और रेंडर किया जाता है।
  4. सार्वजनिक रूप से सुलभ Nonce: gform_get_config एक्शन के लिए आवश्यक config_nonce हर पेज पर JavaScript कॉन्फ़िगरेशन ऑब्जेक्ट (gform_theme_config) में एम्बेडेड होता है जो Gravity Forms फॉर्म लोड करता है। यह nonce सभी पेजों पर समान होता है और किसी विशिष्ट उपयोगकर्ता सत्र से बंधा नहीं होता है, जिससे इसे बिना प्रमाणीकरण वाले उपयोगकर्ताओं द्वारा आसानी से प्राप्त किया जा सकता है।

CWE विश्लेषण

यह भेद्यता कई योगदान देने वाली कमजोरियों का परिणाम है जो शोषणीय स्थिति उत्पन्न करने के लिए एक साथ जुड़ती हैं। जबकि CWE-79 CVE रिपोर्टिंग उद्देश्यों के लिए प्राथमिक वर्गीकरण है, पूरी श्रृंखला दस्तावेजित करती है कि कैसे प्रत्येक विफलता शोषण को सक्षम बनाने के लिए संयुक्त होती है।

कमजोरी श्रृंखला```

CWE-20 CWE-116 CWE-838 CWE-79 Improper Input → Improper Encoding → Inappropriate Encoding → Cross-Site Validation or Escaping of Output for Output Context Scripting (XSS) [EXPLOITABLE] form_ids accepts Reflected values are JSON data served as Browser parses arbitrary strings not HTML-entity text/html instead of injected HTML tags instead of integers encoded in response application/json and executes JS

### CWE-20: अनुचित इनपुट सत्यापन (योगदान देने वाला)

**भूमिका:** मूल सक्षमकर्ता — दुर्भावनापूर्ण डेटा को प्रोसेसिंग पाइपलाइन में प्रवेश करने की अनुमति देता है।

`args` JSON ऑब्जेक्ट में `form_ids` पैरामीटर से संख्यात्मक फॉर्म पहचानकर्ता होने की अपेक्षा की जाती है, लेकिन यह बिना किसी सत्यापन के मनमाना स्ट्रिंग इनपुट स्वीकार करता है। न तो टाइप जाँच (`intval()`), न ही रेगेक्स फ़िल्टरिंग (`^[0-9]+$`), न ही ज्ञात फॉर्म आईडी के विरुद्ध व्हाइटलिस्ट तुलना, और न ही लंबाई प्रतिबंध लागू किए जाते हैं।

**साक्ष्य:** सर्वर बिना अस्वीकृति के HTML टैग, JavaScript इवेंट हैंडलर और मनमाना यूनिकोड युक्त `form_ids` मानों को स्वीकार और प्रोसेस करता है।```json
{"form_ids":["<svg onload=alert(1)>"]}    ← Accepted
{"form_ids":["3"]}                         ← Expected

CWE-116: आउटपुट का अनुचित एन्कोडिंग या एस्केपिंग (प्राथमिक तकनीकी विफलता)

भूमिका: मुख्य भेद्यता — XSS स्थिति का प्रत्यक्ष कारण।

जब सर्वर form_ids मानों वाला JSON प्रतिक्रिया निर्मित करता है, तो यह आउटपुट पर HTML एंटिटी एन्कोडिंग लागू नहीं करता है। HTML में विशेष अर्थ वाले वर्ण (<, >, ", ', &) प्रतिक्रिया बॉडी में बिना संशोधित पारित हो जाते हैं। PHP फ़ंक्शन htmlspecialchars(), esc_html(), JSON_HEX_TAG के साथ wp_json_encode(), या समकक्ष आउटपुट एन्कोडिंग फ़ंक्शन form_ids मानों पर लागू नहीं किए जाते हैं, इससे पहले कि वे प्रतिक्रिया में लिखे जाएं।

साक्ष्य: शाब्दिक स्ट्रिंग <svg onload=alert(document.domain)> प्रतिक्रिया बॉडी में इनपुट के समान बाइट-दर-बाइट दिखाई देती है, न कि &lt;svg onload=alert(document.domain)&gt; के रूप में।

CWE-838: आउटपुट संदर्भ के लिए अनुचित एन्कोडिंग (यौगिक)

भूमिका: संदर्भ वृद्धि — डेटा प्रतिबिंब समस्या को निष्पादन योग्य कोड इंजेक्शन में बदल देती है।

प्रतिक्रिया बॉडी में JSON-संरचित डेटा होता है, लेकिन इसे Content-Type: text/html; charset=UTF-8 के साथ परोसा जाता है। यह Content-Type घोषणा ब्राउज़र के HTML पार्सर को संपूर्ण प्रतिक्रिया बॉडी को एक HTML दस्तावेज़ के रूप में संसाधित करने का निर्देश देती है। यदि प्रतिक्रिया application/json के रूप में परोसी जाती, तो ब्राउज़र प्रतिक्रिया को सादे पाठ के रूप में प्रस्तुत करता और कोई HTML पार्सिंग नहीं होती — इंजेक्ट किए गए टैग DOM तत्वों के रूप में तत्काल होने के बजाय शाब्दिक पाठ के रूप में प्रदर्शित होते।

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