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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
phpmyadmin-csrf-sql — phpMyAdmin 5.2.3 - عالي - عن بُعد - CSRF - إزالة الرمز على /sql | Kitploit
أدوات/GitHubGitHub/abraxas/phpmyadmin-csrf-sql
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقمختبرات وتدريب عملي
GitHubabraxas/phpmyadmin-csrf-sql

phpmyadmin-csrf-sql

phpMyAdmin 5.2.3 - عالي - عن بُعد - CSRF - إزالة الرمز على /sql

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - phpmyadmin-csrf-sql

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

phpmyadmin-csrf-sql

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

phpMyAdmin 5.2.3 (الوسم RELEASE_5_2_3، الالتزام 962857e). يبني Common.php طلب PSR-7 من المتغيرات العامة قبل checkTokenRequestParam. عند عدم التطابق، يمسح Sanitize::removeRequestVars كلاً من $_POST و$_GET لكن ليس تلك اللقطة. ثم يُنسخ $sql_query من $request->getParsedBodyParam('sql_query'). طلبات AJAX POST تتوقف عند عدم تطابق الرمز. طلبات POST غير AJAX تستمر. يفضّل SqlController قيمة $_POST['sql_query'] المُجرَّدة وإلا يحتفظ بالقيمة العامة.

يكفي وجود ضحية تملك ملف تعريف جلسة phpMyAdmin. أرسل POST إلى index.php?route=/sql مع sql_query وبدون رمز صالح، وبدون ajax_request. يُنفَّذ استعلام SELECT بصلاحيات مستخدم MySQL ذلك. الإعداد الافتراضي CookieSameSite=Strict في 5.2.3 يحجب العديد من المتصفحات عبر المواقع. لكن same-site أو Lax أو None أو مصادقة HTTP لا تزال تصيبه. هذا ضابط CSRF معطوب في كل الأحوال.

المعرّفلا يوجد CVE بعد
الفئةCSRF
الوصولعن بُعد. الإعداد الافتراضي CookieSameSite=Strict يحجب العديد من المتصفحات عبر المواقع. تبقى same-site / Lax / None / مصادقة HTTP.
CWECWE-352
CVSSمرتفع: 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
المنتجphpMyAdmin
المتأثر5.2.3 الوسم RELEASE_5_2_3 (962857e)
المصادقةملف تعريف جلسة phpMyAdmin للضحية (أو مصادقة HTTP). بدون رمز CSRF صالح.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:19240 فقط

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

أي شخص يستطيع جعل متصفح الضحية يرسل POST إلى phpMyAdmin بدون ajax_request يمكنه تنفيذ SQL بصلاحيات مستخدم MySQL ذلك.

الصلاحيةالطريقة / المسارمُثبت مختبرياً أو مُستنتج
تنفيذ SQL المهاجم بحساب MySQL الخاص بالضحية (سلامة + استطلاع لصندوق SQL ذلك)POST index.php?route=/sql sql_query=... db=... بدون token، بدون ajax_requestمُثبت مختبرياً. احتوى جسم النتائج على PMA-CSRF-SQL-WITNESS. أظهر السجل العام استعلام SELECT باسم appuser
إيقاف نفس المعالج عند AJAXنفس POST مع ajax_request=1مُثبت مختبرياً. Token mismatch. صف علامة INSERT غائب. لم يُنفّذ السجل العام ذلك INSERT
تجاوز المعالجات التي تقرأ فقط $_POST المُجرَّدةPOST /database/structure/drop-table بدون رمزمُثبت مختبرياً. keepme لا يزال موجوداً
نفس الثغرة عند التصدير (SaveDir)، DROP/TRUNCATE للقسم، قفل الحساب، /config/set، إنشاء pmadbأي معالج يقرأ جسم PSR-7 بعد التجريدمُستنتج. لم يُختبر

مغلق في هذا المختبر: PMA بدون مصادقة (يتطلب تسجيل دخول بالكوكيز أولاً)، مسارات AJAX (تخرج عند عدم التطابق)، drop-table بدون رمز، صدفة نظام التشغيل. الإعداد الافتراضي Strict SameSite يعني أن نموذجاً كلاسيكياً عبر المواقع غالباً لن يرسل الكوكي؛ لكن المتبقي لا يزال فحص CSRF فاشلاً على same-site وعلى عمليات النشر Lax/None.

كيف وجدته

ثمانية عمليات بحث متوازية في المصدر لـ RELEASE_5_2_3. ينشئ Common.php $request = createFromGlobals() قبل checkTokenRequestParam(). عند عدم التطابق، يمسح Sanitize::removeRequestVars() كلاً من $_POST/$_GET فقط. غير AJAX يستمر. يستخدم SqlController المتغير العام $sql_query إذا كان $_POST فارغاً. المسار GET|POST /sql.

مسارات خاطئة: اعتبار AJAX /sql هو المتبقي (يتوقف عند Token mismatch)؛ اعتبار drop-table هو المتبقي (هذا المعالج يقرأ فقط $_POST المُجرَّدة)؛ اعتبار الإعداد الافتراضي Strict SameSite يعني "CSRF مغلق" (الضابط لا يزال معطوباً؛ same-site / Lax / None تبقى).

المختبر

python3 phpmyadmin-csrf-sql-Abraxas-Labs.py

أو

cd lab
./run.sh

Loopback فقط: http://127.0.0.1:19240. الصور phpmyadmin:5.2.3 وmysql:8.0. مشروع Compose phpmyadmin-csrf-sql. الـ PoC هو POST من same-site loopback (Strict SameSite لا يزال يرسل الكوكي). الشاهد PMA-CSRF-SQL-WITNESS.

SUCCESS phpmyadmin-csrf-sql sql-ran=yes ajax-abort=yes drop-held=yes PMA-CSRF-SQL-WITNESS

الإصلاح

عند عدم التطابق، استبدل الطلب بجسم فارغ، أو ارفض جميع طلبات POST، وليس AJAX فقط. لا تنسخ sql_query من طلب قديم. افشل بشكل مغلق مثل تسجيل الخروج.

المراجع

  • github.com/phpmyadmin/phpmyadmin الوسم RELEASE_5_2_3 (962857e)
  • libraries/classes/Common.php لقطة الطلب قبل تجريد الرمز
  • Sanitize::removeRequestVars يمسح $_POST/$_GET فقط
  • SqlController المتغير العام $sql_query
  • بقايا نفس الإصدار: phpmyadmin-webauthn · phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate
  • CWE-352

الترخيص

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

تنزيل الأداة