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

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

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

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

دليل الأدوات

الفئات

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

phpmyadmin-issuperuser

phpMyAdmin 5.2.3 - عالي - عن بُعد - متبقٍّ - تم تخطي فحص isSuperUser

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - phpmyadmin-issuperuser

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

phpmyadmin-issuperuser

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

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

DatabaseInterface::isSuperUser() ليس فحصًا لـ SUPER / SYSTEM_USER. إنه SELECT 1 FROM mysql.user LIMIT 1. أي حساب يمكنه قراءة mysql.user يُخزَّن مؤقتًا كمستخدم خارق لبقية الجلسة. $cfg['AllowUserDropDatabase'] قيمته الافتراضية false. يأخذ DestroyController وSqlController وImportController وصفحة قواعد البيانات اختصار isSuperUser متجاوزًا بذلك هذا الإعداد.

تجاوز لسياسة phpMyAdmin، وليس صلاحية MySQL جديدة. SELECT على mysql.user مع DROP، وبدون SUPER، كافٍ للحذف عبر PMA.

المعرّفلا يوجد CVE بعد
الفئةصلاحية متبقية
الوصولعن بُعد (تسجيل دخول موثّق عبر الكوكيز بحساب MySQL)
CWECWE-863
CVSSمتوسط: 6.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
المنتجphpMyAdmin
المتأثر5.2.3 وسم RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
المصادقةتسجيل دخول موثّق عبر الكوكيز بحساب MySQL
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

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

حساب MySQL مسجَّل الدخول يمكنه قراءة mysql.user (وهو SELECT نموذجي لحسابات النسخ الاحتياطي/المراقبة) بالإضافة إلى DROP، وبدون SUPER، يُعامَل كمستخدم خارق في phpMyAdmin.

الصلاحيةالطريقة / نقطة الوصولالاستطلاع / السلامة / التوافرمُثبت مختبريًا أم مُستنتج
تجاوز $cfg['AllowUserDropDatabase']=false ورؤية Drop في صفحة قواعد البياناتGET index.php?route=/server/databasesاستطلاع لواجهة Dropمُثبت مختبريًا. bulkActionDropButton / selected_dbs[] موجودة لـ selectuser؛ غائبة لـ plaindrop
حذف قاعدة بيانات عبر معالج destroy في PMAPOST index.php?route=/server/databases/destroy selected_dbs[]=dropme ajax_request=trueالسلامة / التوافر لتلك القاعدةمُثبت مختبريًا. JSON success:true، "1 database has been dropped successfully." اختفاء dropme
تنفيذ DROP DATABASE من صندوق SQLPOST index.php?route=/sql sql_query=DROP DATABASE \dropme_sql``السلامة / التوافر لتلك القاعدةمُثبت مختبريًا. اختفت القاعدة. الحساب السلبي يحصل على "DROP DATABASE statements are disabled."
فتح شاشات PMA أخرى مقيّدة بـ isSuperUser()Privileges، replication، status، user groups، engines، binlog، variablesاستطلاع / سلامة لتلك الشاشاتمُستنتج من مواضع الاستدعاء. لم يُختبر
قراءة mysql.userSELECT في MySQL الذي يستخدمه PMA كأداة كشف SUPERاستطلاع للكتالوج الذي يخطئ PMA في اعتباره SUPERمُثبت مختبريًا. هذا المنح هو ما تخطئ الصلاحية المتبقية في اعتباره SUPER

مغلق في هذا المختبر: SUPER الحقيقي في MySQL (SHOW GRANTS يبقى USAGE + DROP على الجدول + SELECT على mysql.user). FILE وGRANT OPTION والإيقاف وALL PRIVILEGES غير ممنوحة. حساب يملك DROP لكن بدون SELECT على mysql.user لا يزال غير قادر على الحذف عبر PMA. هذه ليست صلاحية MySQL جديدة وليست RCE.

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

كيف وجدتها

ثبّتُّ phpMyAdmin RELEASE_5_2_3. بوابات الصلاحيات التي تتحدث كأنها SUPER يجب أن تبدو كـ SUPER. هذه تبدو كـ SELECT على الكتالوج:

$result = $this->tryQuery('SELECT 1 FROM mysql.user LIMIT 1');
$isSuperUser = false;
if ($result) {
    $isSuperUser = (bool) $result->numRows();
}
SessionCache::set('is_superuser', $isSuperUser);

البوابات التي تأخذ هذا العلم حول AllowUserDropDatabase (الافتراضي false):

  • Controllers/Server/DatabasesController.php is_drop_allowed
  • Controllers/Server/Databases/DestroyController.php (AJAX destroy)
  • Controllers/Sql/SqlController.php / Sql::hasNoRightsToDropDatabase
  • Controllers/Import/ImportController.php
  • Controllers/Database/OperationsController.php

المنعطفات الخاطئة المسجلة مسبقًا: ادعاء SUPER الحقيقي في MySQL؛ اعتبار حساب DROP فقط هو الثغرة (ذلك الحساب هو الضابط السلبي)؛ تضخيم هذا إلى RCE؛ reverse shell. مسرحية.

المختبر

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

الهدف فقط http://127.0.0.1:19270. الصورتان phpmyadmin:5.2.3 وmysql:8.0. مشروع Compose باسم phpmyadmin-issuperuser. $cfg['AllowUserDropDatabase']=false. تُفكَّك الحزمة بعد التشغيل.

selectuser يملك SELECT على mysql.user بالإضافة إلى DROP على dropme / dropme_sql، بدون SUPER. plaindrop يملك DROP على nodropme فقط. صفحة قواعد البيانات تُظهر Drop لـ selectuser. POST إلى /server/databases/destroy يحذف dropme. POST إلى /sql مع DROP DATABASE dropme_sql يعمل أيضًا. plaindrop لا يزال يحصل على JSON الخطأ من destroy وعلى "DROP DATABASE statements are disabled" من /sql.

SUCCESS phpmyadmin-issuperuser drop-ui=yes destroy=ok sql-drop=ok grants-no-super=yes mysql.user-select=yes neg-drop-ui=no neg-destroy=denied PMA-ISSUPERUSER-WITNESS

الإصلاح

اختبر SUPER / SYSTEM_USER الحقيقي عبر INFORMATION_SCHEMA أو SHOW GRANTS. احتفظ بعلم منفصل "يمكنه قراءة mysql.user" للواجهة التي تحتاج فعلاً ذلك الكتالوج. لا تخزّن SELECT على الكتالوج كمستخدم خارق.

المراجع

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

الترخيص

GNU Affero GPL v3.0. انظر LICENSE. مختبر loopback فقط. بدون ضمان.

تنزيل الأداة