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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
phpmyadmin-auth-plugin-unquoted — phpMyAdmin 5.2.3 - عالي - عن بُعد - SQLi - معرّف إضافة المصادقة بدون علامات اقتباس | Kitploit
أدوات/GitHubGitHub/abraxas/phpmyadmin-auth-plugin-unquoted
ماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقأمن قواعد البيانات
GitHub
abraxas/phpmyadmin-auth-plugin-unquoted

phpmyadmin-auth-plugin-unquoted

phpMyAdmin 5.2.3 - عالي - عن بُعد - SQLi - معرّف إضافة المصادقة بدون علامات اقتباس

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - phpmyadmin-auth-plugin-unquoted

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

التقرير: https://abraxaslabs.tech/research/phpmyadmin-auth-plugin-unquoted

phpmyadmin-auth-plugin-unquoted

الفئة: SQLi الوصول: عن بُعد

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

خيار تغيير كلمة المرور مُفعَّل افتراضيًا. ينسخ UserPassword.php قيمة authentication_plugin المرسلة عبر POST إلى ALTER USER ... IDENTIFIED WITH دون قائمة سماح ودون اقتباس. أما اسم المستخدم والمضيف وكلمة المرور في العبارة نفسها فتمر عبر escapeString. في MySQL 8 تُصدَر جملة WITH عندما تختلف الإضافة المرسلة عن الإضافة الحالية.

مستخدم phpMyAdmin مسجَّل الدخول يحقن SQL في عبارة ALTER USER الخاصة به عبر نموذج تغيير كلمة المرور. أي SQL إضافي في حقل الإضافة يُعامل كـ SQL، لا كاسم إضافة.

المعرّفلا يوجد CVE بعد
الفئةSQLi
الوصولعن بُعد (تسجيل دخول مُصادَق عبر الكوكيز؛ تغيير كلمة المرور مُفعَّل)
CWECWE-89
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 (962857e4f63d42e38f11ff4d63f5e722018add76)
المصادقةتسجيل دخول مُصادَق عبر الكوكيز. $cfg['ShowChgPassword'] افتراضيًا true. نوع المصادقة ليس config
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

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

يمكن لمستخدم phpMyAdmin مسجَّل الدخول أن يحقن SQL في عبارة ALTER USER الخاصة به عبر نموذج تغيير كلمة المرور.

الصلاحيةالطريقة / نقطة الوصولالاستطلاع / السلامة / التوافرمُثبَت مختبريًا أو مُستنتَج
إرسال SQL إضافي في IDENTIFIED WITHPOST index.php?route=/user-password مع authentication_pluginسلامة العبارة التي يبنيها phpMyAdminمُثبَت مختبريًا. طلب POST خام sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ يظهر دون اقتباس في صندوق SQL
جعل MySQL يحلّل ذلك الـ SQL الإضافي كـ SQLالعبارة نفسها تصل إلى mysqldسلامة اتصال المستخدممُثبَت مختبريًا. احتفظ السجل العام بالإضافة sha256_password وأسقط التعليق. الخطأ 1227 لأن هذا المستخدم لا يملك CREATE USER
جمل إضافية أو حسابات إضافية إذا نجح الخروج من السياقنقطة الوصول نفسها؛ تعتمد الاستعلامات المتراكمة على المشغّلسلامة الحسابات الأخرىمُستنتَج. لا يشغّل هذا المختبر عبارة ثانية ولا ينشئ حسابًا آخر
نفس الدمج في إضافة/تعديل المستخدمPrivileges.php IDENTIFIED WITH / MariaDB VIAسلامة العبارات التي يبنيها المانحنظير مُستنتَج. طلب POST المختبري يخص تغيير كلمة المرور فقط

مُغلق على هذا المسار: الاستخدام دون مصادقة (يلزم تسجيل دخول بالكوكيز)، مصادقة config (تغيير كلمة المرور مخفي)، RCE، نجاح تغيير الإضافة دون GRANT على MySQL 8 (الخطأ 1227 دون CREATE USER). يبقى اسم المستخدم والمضيف وكلمة المرور مُهرَّبة. كلمة المرور الخاصة لا تحتاج GRANT؛ المتبقي هو حقل الإضافة غير المُقتبَس، وليس تبديلًا حرًا للإضافة.

نفس التثبيت: بقايا WebAuthn CustomServer.

كيف وجدته

ثبّتُّ phpmyadmin/phpmyadmin على RELEASE_5_2_3. إن PMASA-2025-1/2/3 موجودة بالفعل في 5.2.2. لا يزال تغيير كلمة المرور يُبنى كالتالي:

return 'ALTER USER \'' . $dbi->escapeString($username)
    . '\'@\'' . $dbi->escapeString($hostname)
    . '\' IDENTIFIED WITH ' . $authPlugin . ' BY '

$authPlugin هو $_POST['authentication_plugin']. يحذف MySQL 5.7.37+ و8.0 عبارة WITH ما لم يتغيّر الملحق (plugin). أرسِل اسمًا مختلفًا عبر POST فتعود العبارة.

الأخطاء المسجّلة سلفًا: اعتبار خطأ MySQL 1227 فشلًا للمخلّفات (وهو الدليل على أن SQL الإضافية قد حُلّلت)؛ والادعاء بتغيير ملحق بدون GRANT على MySQL 8؛ واعتبار config-auth ضمن النطاق؛ وصدفة عكسية (reverse shell). مسرح.

المختبر

python3 phpmyadmin-auth-plugin-unquoted-Abraxas-Labs.py
# or: cd lab && ./run.sh

استهدف فقط http://127.0.0.1:19260. الصورتان phpmyadmin:5.2.3 وmysql:8.0. مشروع Compose باسم phpmyadmin-auth-plugin-unquoted. تُفكَّك الحزمة بعد التشغيل.

تسجيل الدخول عبر ملف تعريف الارتباط باسم appuser. أرسل POST إلى /user-password مع authentication_plugin=sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/. مربع استعلام SQL في PMA: ALTER USER 'appuser'@'%' IDENTIFIED WITH sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ BY '***'. يحلّل سجل MySQL العام التعليق ويخزّن IDENTIFIED WITH 'sha256_password'. اسم المستخدم محاط بعلامات اقتباس.

SUCCESS phpmyadmin-auth-plugin-unquoted how=live unquoted=yes escaped-user=yes plugin=sha256_password PMA-AUTH-PLUGIN-UNQUOTED-WITNESS

الإصلاح

اسمح بأسماء الإضافات من SHOW PLUGINS فقط. لا تُدرج أبدًا بيانات POST في IDENTIFIED WITH أو VIA أو plugin=.

المراجع

  • github.com/phpmyadmin/phpmyadmin وسم RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/UserPassword.php
  • libraries/classes/Server/Privileges.php
  • نفس التثبيت: PMA-5.2.3-WebAuthn-2FA
  • CWE-89

الترخيص

GNU Affero GPL v3.0. راجع LICENSE. للاستخدام في مختبر loopback فقط. دون أي ضمان.

تنزيل الأداة