Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-27886-check — اكتشف ما إذا كان مثيل Strapi معرضًا لـ CVE-2026-27886 (تسريب أسرار المسؤول عبر هجوم Boolean Oracle غير مصادق عليه). | Kitploit
أدوات/GitHubGitHub/bishopfox/cve-2026-27886-check
الاستطلاعتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتاختبار الاختراق
GitHubbishopfox/cve-2026-27886-check

CVE-2026-27886-check

اكتشف ما إذا كان مثيل Strapi معرضًا لـ CVE-2026-27886 (تسريب أسرار المسؤول عبر هجوم Boolean Oracle غير مصادق عليه).

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

الأكثر شعبية

عرض الكل →

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

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

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

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

أداة تقييم الثغرة CVE-2026-27886

اكتشف بأمان ما إذا كانت مثيل Strapi معرضة لـ CVE-2026-27886 دون تنفيذ سلسلة الاستيلاء الكاملة على الحساب. اطلع على الشرح الكامل على مدونة Bishop Fox.

الوصف

CVE-2026-27886 هي ثغرة تجاوز لتعقيم المعاملات غير الموثقة في إصدارات Strapi من 4.0.0 إلى 5.36.1، تسمح للمهاجمين غير الموثوقين عن بُعد بتسريب أسرار المسؤول من خلال واجهة برمجة تطبيقات المحتوى العامة. يعالج مُعقّم الاستعلامات في @strapi/utils فقط مفاتيح الاستعلامات الموثقة filters وsort وfields وpopulate ويحافظ بصمت على كل مفتاح آخر من المستوى الأعلى في الطلب. ثم يتم تمرير المفاتيح غير المعروفة عبر transformQueryParams وتصل إلى strapi.db.query(...) كشرط SQL WHERE. من خلال استقصاء where[updatedBy][resetPasswordToken][$startsWith]=<prefix> ضد أي مجموعة من واجهة برمجة تطبيقات المحتوى العامة، يمكن للمهاجم تسريب أسرار المسؤول حرفًا حرفًا عبر حقل meta.pagination.total في الاستجابة.

تؤدي هذه الأداة اختبارًا غير مدمر للثغرة عن طريق:

  1. إرسال طلب أساسي GET /api/<collection>
  2. إرسال نفس طلب GET مع إلحاق ?where[id][$lt]=-1
  3. مقارنة قيمتي meta.pagination.total لتحديد ما إذا كان شرط where قد وصل إلى طبقة قاعدة البيانات

المسند where[id][$lt]=-1 لا يمكن أن يطابق أي صف حقيقي، لذلك عند تطبيق الشرط في طبقة قاعدة البيانات، تنهار الاستجابة إلى صفر صفوف. عندما يكون التصحيح موجودًا، يتم إسقاط المفتاح غير المعروف where بواسطة القائمة البيضاء للمعقّم قبل بناء الاستجابة وتكون الاستجابة مطابقة للأساسية. لا يلمس الفحص أبدًا أعمدة المسؤول الخاصة ولا يعدل أي بيانات.

  • الخوادم المعرضة ترجع مجاميع مختلفة: الأساسي يعيد صفًا واحدًا على الأقل بينما طلب المسند يعيد صفرًا، لأن شرط where تم تطبيقه في طبقة قاعدة البيانات.
  • الخوادم المعدلة (Strapi 5.37.0 أو أحدث) ترجع مجاميع متطابقة لكلا الطلبين، لأن sanitizeQuery يزيل أي مفاتيح غير معروفة من المستوى الأعلى قبل وصولها إلى قاعدة البيانات.
  • الخوادم غير Strapi، أو نقاط النهاية غير القابلة للوصول، أو المجموعات الفارغة ستُبلغ عن نتيجة INCONCLUSIVE.

على خادم معرض، تقوم الأداة بعد ذلك بتعداد عنوان البريد الإلكتروني للمسؤول حرفًا حرفًا عبر where[updatedBy][email][$startsWith]=<prefix>. لا ترتبط بسلسلة الاستيلاء على حساب المسؤول.

التثبيت

git clone https://github.com/BishopFox/CVE-2026-27886-check
cd CVE-2026-27886-check

لا توجد تبعيات خارجية. يستخدم الماسح الضوئي وحدات مكتبة بايثون القياسية فقط.

الاستخدام

اختبر نقطة نهاية مجموعة واجهة برمجة تطبيقات المحتوى العامة لخادم Strapi. يقوم Strapi بتعيين pluralName لنوع المحتوى إلى مسار URL، لذلك يختلف الاسم الدقيق حسب النشر.

python3 CVE-2026-27886-check.py <ENDPOINT>

مثال: خادم معرض

$ python3 CVE-2026-27886-check.py http://target.example.com/api/articles
[+] Target: http://target.example.com/api/articles
[+] Differential confirmed: baseline total=1, where-test total=0 -> VULNERABLE
[+] Enumerating admin email
    admin email = [email protected]
[+] Done. To remediate, upgrade to Strapi 5.37.0 or later.

مثال: خادم مصحح

$ python3 CVE-2026-27886-check.py http://target.example.com/api/articles
[+] Target: http://target.example.com/api/articles
[+] Differential check: baseline total=1, where-test total=1 -> NOT VULNERABLE

المتطلبات المسبقة

يمكن للأداة اكتشاف الثغرة فقط إذا تم استيفاء الشروط التالية:

  • الهدف يعمل بإصدار Strapi من 4.0.0 إلى 5.36.1
  • تم منح الدور العام صلاحية find على نوع محتوى واحد على الأقل
  • يوجد صف واحد على الأقل في ذلك النوع من المحتوى يحتوي على updated_by_id غير فارغ
  • عنوان URL لمجموعة الهدف قابل للوصول

إذا لم يتم استيفاء أي شرط، ستُبلغ الأداة عن نتيجة INCONCLUSIVE.

الترخيص

يتم توزيع هذا الرمز بموجب ترخيص MIT.

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

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

انظر أيضًا

  • تقرير أمان Strapi GHSA-rjg2-95x7-8qmx
  • مدونة Bishop Fox: التحليل الفني الكامل
  • NVD — CVE-2026-27886
تنزيل الأداة