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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-20323 | Kitploit
أدوات/GitHubGitHub/ndmalc/cve-2021-20323
تحليل الثغرات الأمنيةاستغلال تطبيقات الويبأمن الويباختبار الاختراقالأوراق والأبحاثالتعلم والتعليم
GitHubndmalc/cve-2021-20323

CVE-2021-20323

عرض المستودع
132منذ 3 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-20323

الوصف

يحتوي Keycloak قبل الإصدار 18.0.0 وبعد الإصدار 10.0.0 على ثغرة XSS منعكسة في نقطة نهاية clients-registrations. يتم تشغيل الثغرة عن طريق تقديم، عبر POST، بنية json بمفتاح كاسم معلمة غير مدعوم من قبل نقطة النهاية. يعكس الرد مفتاح json في رسالة خطأ مع تعيين الترويسة على Content-Type: text/html. عند التنفيذ في المتصفح، يتم تفسير كود html من مفتاح json مما يسمح بتشغيل كود JavaScript. لا يتطلب الأمر مصادقة وتؤثر الثغرة على جميع النطاقات (realms) المتاحة.

حاليًا، نظرًا لأن الثغرة تتطلب Content-Type: application/json ويتم إرسالها عبر POST، لا يوجد مسار شائع لاستغلالها يكون له تأثير على المستخدم.

يوفر هذا المستودع إثبات مفهوم (POC) لـ CVE-2021-20323 وتوصيات للإصلاح/التخفيف.

كيفية تشغيل الثغرة

تشغيل الثغرة سهل جدًا.

root@kitploit:~
curl -v -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: application/json" -d "{\"\":1}"

من الممكن أيضًا تشغيلها مع مزود openid-connect.

root@kitploit:~
curl -v -X POST {BaseURL}/realms/master/clients-registrations/openid-connect -H "Content-type: application/json" -d "{\"\":1}"

ملاحظة: في إصدارات Keycloak الأقدم (الإصدار الذي يعمل مع wildfly بدلاً من quarkus) يستخدم المسار الأساسي /auth/realms/* بدلاً من /realms/*

هل الثغرة قابلة للاستغلال؟

كما نرى في مصادر متعددة هنا أو هنا، ليس من الممكن بشكل شائع استغلال XSS منعكسة عبر POST تتطلب Content-Type: application/json لتكون قابلة للاستغلال. الحالة الوحيدة التي يمكن أن يحدث فيها ذلك هي إذا تم تخفيف سياسة CORS يدويًا عن الإعداد الافتراضي للسماح بطلبات عبر المصادر (cross-origin). هذا السيناريو لا يمكن افتراضه بشكل معقول إلا في حالات استخدام محددة جدًا أُنشئت لأسباب وظيفية من قبل مالك التطبيق. لكي تكون قابلة للاستغلال في مثل هذه الحالة، يجب أن يتحكم المهاجم إما في النطاق/الخادم المسموح به في سياسة CORS أو أن يكون لديه XSS على هذا النطاق الثاني يمكن استخدامه كمرحّل (relay).

مع CVE-2021-20323، لا يقبل Keycloak POST مع Content-Type من نوع multipart/form-data أو application/x-www-form-urlencoded وهما النوعان الوحيدان المسموح بهما في إرسال form أساسي. هذا يجعل CVE-2021-20323 قابلة للاستغلال فقط إذا سمحت CORS بذلك صراحةً.

root@kitploit:~
# curl -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: multipart/form-data" -d "{\"\":1}"
{"error":"RESTEASY003065: Cannot consume content type"}

# curl -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: application/x-www-form-urlencoded" -d "{\"\":1}"
{"error":"RESTEASY003065: Cannot consume content type"}

كيفية الإصلاح؟

قم بالتحديث إلى Keycloak 18.0.0 أو أحدث.

لا توجد إصدارات معروفة تم إصلاحها لـ RedHat Single Sign-On وهو إصدار مُعاد تجميعه من Keycloak بواسطة RedHat.

بدائل التخفيف

  1. ضع وكيلًا عكسيًا (reverse proxy) لمنع أي استدعاء إلى clients-registrations
  2. قم بتكوين Keycloak مع ACL لتقييد الوصول إلى clients-registrations، على غرار مقال مدونة Keycloak

الروابط

  • https://github.com/keycloak/keycloak/security/advisories/GHSA-m98g-63qj-fp8j
  • https://nvd.nist.gov/vuln/detail/CVE-2021-20323
  • https://bugzilla.redhat.com/show_bug.cgi?id=2013577
  • https://access.redhat.com/security/cve/CVE-2021-20323
  • https://github.com/keycloak/keycloak/commit/3aa3db16eac9b9ed8c5335ac86f5f50e0c68662d
  • https://security.stackexchange.com/questions/263301/reflected-xss-found-in-web-application-via-post-request-with-json-body-is-this
  • https://www.keycloak.org/2021/12/cve

الترخيص

رخصة MIT © [ndmalc]

تنزيل الأداة