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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
phpmyadmin-importldi — phpMyAdmin 5.2.3 - عالي - عن بُعد - SQLi - ImportLdi TERMINATED BY leftover | Kitploit
أدوات/GitHubGitHub/abraxas/phpmyadmin-importldi
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقمختبرات وتدريب عملي
GitHubabraxas/phpmyadmin-importldi

phpmyadmin-importldi

phpMyAdmin 5.2.3 - عالي - عن بُعد - SQLi - ImportLdi TERMINATED BY leftover

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - phpmyadmin-importldi

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

phpmyadmin-importldi

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

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

ImportLdi.php يبني LOAD DATA مع FIELDS/LINES TERMINATED BY من POST ldi_terminated و ldi_new_line. يتم دمج هاتين السلسلتين داخل SQL محاط بعلامات اقتباس مفردة. يمر ldi_enclosed و ldi_escaped عبر escapeString. يقوم phpMyAdmin بتعيين PMA_ENABLE_LDI على /import بحيث يكون MYSQLI_OPT_LOCAL_INFILE مفعّلًا.

يقوم مستخدم مسجّل الدخول بإرسال POST format=ldi مع علامة اقتباس في ldi_terminated. يحتوي LOAD DATA الصادر على POST الخام داخل TERMINATED BY. حقن SQL في اتصال المستخدم، وليس في مستخدم التحكم.

IDلا يوجد CVE بعد
الفئةSQLi
الوصولعن بُعد (تسجيل دخول مصادق عليه عبر الكوكيز؛ استيراد جدول، الصيغة ldi)
CWECWE-89
CVSSمتوسط: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
المنتجphpMyAdmin
المتأثر5.2.3 وسم RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
المصادقةتسجيل دخول مصادق عليه عبر الكوكيز. استيراد جدول، الصيغة ldi
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

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

يمكن لمستخدم phpMyAdmin مسجّل الدخول وقادر على فتح استيراد الجدول أن يحقن SQL في LOAD DATA ... TERMINATED BY على اتصال MySQL الخاص به.

الصلاحيةالطريقة / نقطة الوصولالاستطلاع / السلامة / التوافرمُثبت مختبريًا أو مُستنتج
كسر القيمة الحرفية FIELDS TERMINATED BYPOST index.php?route=/import format=ldi ldi_terminated مع علامة اقتباسسلامة العبارة التي يبنيها PMAمُثبت مختبريًا. صندوق SQL في HTML: TERMINATED BY '',PMA-IMPORTLDI-WITNESS'
إبقاء ENCLOSED BY داخل النطاقنفس POST، علامة اقتباس في ldi_enclosedضبط سلبيمُثبت مختبريًا. ENCLOSED BY مُهرّب
SQL إضافي على اتصال المستخدم (INTO OUTFILE / مكدّس إذا كان مسموحًا)نفس نقطة الوصول بمجرد إغلاق السلسلةسلامة اتصال المستخدممُستنتج. يتوقف المختبر عند الفاصل المكسور. الإعداد الافتراضي mysqli::query عبارة واحدة
قراءة/كتابة ملفات من جهة MySQLنفس LOAD DATA إذا كان الحساب يملك FILE أو LOCAL INFILE إلى خادم الويبسلامة الملفات التي يمكن لـ mysqld الوصول إليهامُستنتج. غير ممنوح هنا. غير مُدّعى

مغلق في هذا المختبر: الوصول غير المصادق عليه، مستخدم التحكم / pmadb، LFI عبر include في نظام التشغيل، والقراءة/الكتابة المقيّدة بـ FILE. المستخدم المسجّل الدخول يملك بالفعل صندوق SQL؛ هذا المتبقي هو الفاصل غير المُهرّب داخل عبارة يبنيها PMA له.

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

كيف وجدته

ثبّتت phpMyAdmin RELEASE_5_2_3. إضافات الاستيراد التي تبني LOAD DATA يدويًا هي تدقيق لعلامات الاقتباس. اثنان من أصل أربعة حقول فاصلة كانا مُهرّبين. اثنان لم يكونا كذلك:

$sql .= ' FIELDS TERMINATED BY \'' . $ldi_terminated . '\'';
...
$sql .= ' LINES TERMINATED BY \'' . $ldi_new_line . '\'';

يستدعي ldi_enclosed / ldi_escaped الدالة $dbi->escapeString. يعيّن Common.php القيمة PMA_ENABLE_LDI على /import + format=ldi. المسارات GET|POST /import و GET|POST /table/import.

المنعطفات الخاطئة المسجّلة مسبقًا: ادعاء LFI بدون منح FILE؛ اعتبار صندوق SQL هو الاكتشاف (المتبقي هو الفاصل غير المُهرّب الذي يدمجه PMA)؛ ادعاء مستخدم التحكم / pmadb؛ صدفة عكسية. مسرح.

المختبر

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

الهدف فقط http://127.0.0.1:19290. الصور phpmyadmin:5.2.3 و mysql:8.0. مشروع Compose phpmyadmin-importldi. يتم تفكيك الحزمة بعد التشغيل.

تسجيل دخول بالكوكيز. POST /import مع format=ldi وعلامة اقتباس في ldi_terminated. الصادر LOAD DATA LOCAL INFILE ... INTO TABLE \ldi_target` FIELDS TERMINATED BY '',PMA-IMPORTLDI-WITNESS'. نفس علامة الاقتباس في ldi_enclosedمخزّنة كـENCLOSED BYمُهرّب. كود المصدر المثبّت على صورة 5.2.3 لا يزال يحتوي على'.$ldi_terminated.'و$dbi->escapeString($ldi_enclosed)`.

SUCCESS phpmyadmin-importldi pin=RELEASE_5_2_3 how=live TERMINATED-BY-raw ENCLOSED-escaped PMA-IMPORTLDI-WITNESS

الإصلاح

escapeString على ldi_terminated و ldi_new_line، تمامًا كما في enclosed و escaped. تحويل skip_queries إلى int.

المراجع

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

الترخيص

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

تنزيل الأداة