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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
phpmyadmin-webauthn — phpMyAdmin 5.2.3 - عالي - عن بُعد - تخطي المصادقة الثنائية - يمكن تخطي عملية WebAuthn | Kitploit
أدوات/GitHubGitHub/abraxas/phpmyadmin-webauthn
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقالمصادقةمختبرات وتدريب عملي
GitHubabraxas/phpmyadmin-webauthn

phpmyadmin-webauthn

phpMyAdmin 5.2.3 - عالي - عن بُعد - تخطي المصادقة الثنائية - يمكن تخطي عملية WebAuthn

عرض المستودع
9منذ 4 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - phpmyadmin-webauthn

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-webauthn

phpmyadmin-webauthn

الفئة: تجاوز المصادقة الثنائية الوصول: عن بُعد

phpMyAdmin 5.2.3 (الوسم RELEASE_5_2_3). الحزمة الافتراضية. web-auth/webauthn-lib هي suggest / require-dev. الأمر composer install --no-dev لا يثبّتها. لذلك يستخدم createServer الصنف CustomServer. هذا الصنف يحلّل response.signature (يجب أن يكون الحقل موجودًا وقابلًا للفك) ولا يتحقق منه عبر COSE أبدًا. لا يستخدم أبدًا credentialPublicKey المخزّن. اختبار المنتج نفسه CustomServerTest يقبل تأكيدًا بدون مفتاح عام.

الفحوصات البنيوية حقيقية: معرّف الاعتماد في allowCredentials، وclientData.type == webauthn.get، وتطابق التحدي مع الجلسة، ومضيف الأصل، وrpIdHash، وحضور المستخدم. يتم تحليل التوقيع وتجاهله. بعد كلمة مرور MySQL، توقيع WebAuthn غير صالح لا يزال يطابق تلك الحقول يمنح جلسة phpMyAdmin كاملة. تلك هي قاعدة البيانات. إذا كنت قد ثبّتت web-auth/webauthn-lib فعليًا، فأنت على WebauthnLibServer ولست مصابًا بهذه الثغرة.

المعرّفلا يوجد CVE بعد
الفئةتجاوز المصادقة الثنائية / غياب التحقق من التوقيع
الوصولعن بُعد (تسجيل دخول بالكوكي، ثم تخطي WebAuthn)
CWECWE-347، CWE-287
CVSSمرتفع: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
المنتجphpMyAdmin
المتأثر5.2.3 الوسم RELEASE_5_2_3. الحزمة الافتراضية / composer install --no-dev
المصادقةتسجيل دخول بالكوكي (كلمة مرور MySQL)، ثم تخطي WebAuthn
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18080 فقط

ما يمكن للمهاجم فعله

لا يزال بحاجة إلى كلمة مرور MySQL (تسجيل الدخول بالكوكي). بعد تلك الكلمة، يرسل POST إلى webauthn_request_response مع تحدي مطابق، ومضيف أصل مطابق، وrpIdHash، وحضور المستخدم، ومعرّف اعتماد مسجّل، وتوقيع غير صالح. يصل إلى الواجهة العادية. المصادقة الثنائية اختفت. تلك هي قاعدة البيانات (SQL، المستخدمون، التصدير)، وليست صدفة PHP على المضيف.

إذا كنت قد ثبّتت web-auth/webauthn-lib فعليًا، فأنت على WebauthnLibServer ولست مصابًا بهذه الثغرة.

الصلاحيةالطريقة / المسارمُثبت مختبريًا أو مُستنتج
إكمال المصادقة الثنائية WebAuthn دون المصادق (سلامة العامل الثاني)POST webauthn_request_response بعد كلمة المرور، توقيع غير صالحمُثبت مختبريًا. still_2fa=False landed=True
PMA كامل بصلاحية مستخدم MySQL ذلك (سلامة + استطلاع صندوق SQL)نفس الجلسةمُثبت مختبريًا. علامات واجهة الصفحة الرئيسية موجودة
تخطي كلمة مرور MySQLPOST غير مُصادقمُثبت مختبريًا مغلق. يبقى على صفحة الدخول
نفس التجاوز مع تثبيت web-auth/webauthn-libWebauthnLibServerمغلق. ليس هذه الثغرة المتبقية
RCE على نظام التشغيل / صدفة عكسيةهذه الثغرة المتبقيةمغلق

مغلق على هذه الثغرة المتبقية: PMA غير المُصادق، وصدفة PHP على المضيف، ومعاملة حزمة ثبّتت فعليًا web-auth/webauthn-lib على أنها هذه الثغرة.

كيف وجدتها

قرأت createServer، ثم parseAndValidateAssertionResponse، ثم اختبار الوحدة الذي لا يمرّر مفتاحًا عامًا. الفحوصات البنيوية حقيقية. يتم تحليل التوقيع وتجاهله.

مسارات خاطئة: إرسال POST لـ WebAuthn JSON دون جلسة كلمة مرور سابقة؛ توقيع فشل في الفحوصات البنيوية؛ Webauthn\Server لا يزال موجودًا (صنف خادم خاطئ)؛ التحدي ليس من هذه الجلسة؛ عدم تطابق مضيف الأصل؛ علم حضور المستخدم غير مُفعّل؛ معرّف الاعتماد ليس في allowCredentials.

ملف Dockerfile الخاص بالمختبر ينسخ 5.2.3، ثم composer install --no-dev، ثم يحذف vendor/web-auth ليكون CustomServer هو المستخدم. آخر أمر php -r يخرج بالرمز 1 إذا وُجد Webauthn\Server. ملف init.sql يسجّل المصادقة الثنائية WebAuthn للمستخدم appuser دون مفتاح عتاد. الـ PoC يرسل POST بتوقيع not-a-real-signature-PMA-WEBAUTHN-BYPASS.

المختبر

استنسخ الإصدار المثبّت بجانب Dockerfile، ثم شغّل:

cd lab
git clone --depth 1 --branch RELEASE_5_2_3 https://github.com/phpmyadmin/phpmyadmin.git src
./run.sh

أو من جذر الحزمة بعد ذلك الاستنساخ:

python3 phpmyadmin-webauthn-Abraxas-Labs.py

على الواجهة المحلية فقط: http://127.0.0.1:18080. مشروع Compose pma-webauthn-lab. الإصدار المثبّت RELEASE_5_2_3. لا تُوزّع src/. الشاهد PMA-WEBAUTHN-BYPASS.

SUCCESS PMA-WEBAUTHN-BYPASS WebAuthn 2FA accepted with garbage signature

الإصلاح

تحقق من authenticatorData || SHA-256(clientDataJSON) باستخدام مفتاح COSE العام المخزّن؛ واربط userHandle؛ وفرض signCount. اجعل web-auth/webauthn-lib تبعية حقيقية واحذف CustomServer، أو افشل بشكل آمن إذا كانت المكتبة مفقودة. حتى ذلك الحين، عطّل المصادقة الثنائية WebAuthn أو لا تعرّض phpMyAdmin هذا.

المراجع

  • github.com/phpmyadmin/phpmyadmin الوسم RELEASE_5_2_3
  • Plugins\TwoFactor\WebAuthn::createServer
  • CustomServer::parseAndValidateAssertionResponse
  • ثغرات متبقية في نفس الإصدار: phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-347 · CWE-287

الترخيص

GNU Affero GPL v3.0. انظر LICENSE. مختبر على الواجهة المحلية فقط. دون أي ضمان.

تنزيل الأداة