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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
mysql-mysqlbinlog-raw-path — MySQL Community Server 26.7.0 - عالي - mysqlbinlog --raw مسار Rotate المتبقي - كتابة ملف العميل | Kitploit
أدوات/GitHubGitHub/abraxas/mysql-mysqlbinlog-raw-path
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقمختبرات وتدريب عملي
GitHubabraxas/mysql-mysqlbinlog-raw-path

mysql-mysqlbinlog-raw-path

MySQL Community Server 26.7.0 - عالي - mysqlbinlog --raw مسار Rotate المتبقي - كتابة ملف العميل

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - mysql-mysqlbinlog-raw-path

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  mysql-mysqlbinlog-raw-path

mysql-mysqlbinlog-raw-path

الفئة: كتابة ملف (عميل) الوصول: عن بُعد (UI:R)

MySQL Community Server mysqlbinlog 26.7.0 (06a5c1c) - Oracle

يقوم mysqlbinlog --raw --read-from-remote-server بنسخ حدث Rotate new_log_ident إلى log_file_name دون التحقق من اسم الملف الأساسي. يقوم حدث FORMAT_DESCRIPTION التالي باستدعاء my_fopen على ذلك المسار ويكتب BINLOG_MAGIC بالإضافة إلى الحدث. تفريغ ضار يرسل معرّف Rotate حقيقي يحتوي على / يكتب ذلك الملف بمعرّف المستخدم الخاص بالعميل.

--raw هو نسخ ملف binlog عن بُعد الموثّق. ما تبقّى هو التعامل مع المعرّف كمسار.

المعرّفلا يوجد CVE بعد
الفئةكتابة ملف (العميل --raw BINLOG_MAGIC)
الوصولعن بُعد (الضحية يشغّل mysqlbinlog --raw -R ضد تفريغ المهاجم؛ UI:R)
CWECWE-22
CVSSعالٍ: 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
المنتجMySQL Community Server mysqlbinlog
المتأثر26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
المصادقةالضحية يشغّل mysqlbinlog --raw -R ضد تفريغ المهاجم
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط. ملف الشاهد مع BINLOG_MAGIC. كتابة ملف، وليس RCE.

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

قم بإعداد خادم بروتوكول MySQL. تحدّث COM_BINLOG_DUMP. أرسل Rotate مزيّف مطابق (الطابع الزمني 0، المعرّف يساوي اسم السجل المطلوب) حتى لا يتوقف التفريغ. أرسل Rotate حقيقي (الطابع الزمني != 0) معرّفه /abs/path. أرسل حدث FORMAT_DESCRIPTION.

المشغّل الذي شغّل mysqlbinlog --raw -R ... mysql-bin.000001 يكتب /abs/path بمعرّف المستخدم الخاص بالعميل. المحتويات هي بايتات binlog (\xfebin بالإضافة إلى حدث FD)، وليست حمولة عشوائية. استبدل أي مسار يمكن لمعرّف المستخدم إنشاؤه.

لن يصدر mysqld حقيقي معرّف Rotate يحتوي على /. ما تبقّى هو العميل.

كيف وجدته

نفس مطاردة 26.7.0 مثل mysqldump SHOW TABLES overflow وmysqldump --tab path. كان الخادم الافتراضي فارغًا. أدوات العميل لا تزال تثق بالأسماء عن بُعد.

if (raw_mode) {
  if (output_file != nullptr) {
    snprintf(log_file_name, sizeof(log_file_name), "%s%s", output_file,
             rev->new_log_ident);
  } else {
    my_stpcpy(log_file_name, rev->new_log_ident);
  }
}

Rotate مزيّف (when.tv_sec == 0) معرّفه لا يطابق السجل المطلوب يوقف التفريغ. Rotate مزيّف مطابق يتم تخطيه (continue) بعد النسخ. Rotate الحقيقي لا يوقف. FD التالي:

if (!(result_file = my_fopen(
          log_file_name, O_WRONLY | MY_FOPEN_BINARY, MYF(MY_WME)))) {
  error("Could not create log file '%s'", log_file_name);

تبقى ملفات LOAD DATA المؤقتة SQL_LOAD_MB تحت tmpdir. مغلقة. طول المعرّف محدود بـ FN_REFLEN-1. لا يتم إزالة /.

المنعطفات الخاطئة المسجّلة بالفعل: إرسال Rotate مزيّف معرّفه هو المسار (يتوقف التفريغ)؛ استخدام --result-file (يصبح المعرّف بادئة، ما تبقّى مختلف)؛ mysqld حقيقي كأوراكل؛ المجاميع الاختبارية متروكة مفعّلة.

المختبر

cd lab
./run.sh

الصورة mysql:26.7.0. الملف التنفيذي /usr/libexec/mysqlsh/mysqlbinlog Ver 26.7.0 (ليس على PATH في تلك الصورة). كعب التحكم: Rotate مزيّف mysql-bin.000001 بالإضافة إلى FD يكتب work/mysql-bin.000001. كعب الاجتياز: Rotate مزيّف مطابق، Rotate حقيقي معرّفه /work/oracle/MYSQL-BINLOG-RAW-WITNESS، FD يكتب ذلك المسار (BINLOG_MAGIC). منشور على 127.0.0.1:18620 / 18621. اربطه بالـ loopback. كتابة ملف لبايتات binlog، وليس RCE. لا --result-file.

control-basename=yes
traversal-outside=yes
SUCCESS mysql-mysqlbinlog-raw-path ... MYSQL-BINLOG-RAW-WITNESS

الإصلاح

خذ basename من new_log_ident قبل my_stpcpy / snprintf إلى log_file_name. يجب أن يكتب --raw تحت cwd أو بادئة --result-file، وليس معرّفًا يحتوي على /.

المراجع

  • github.com/mysql/mysql-server وسم mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • client/mysqlbinlog.cc dump_remote_log_entries
  • حزم شقيقة: abraxas/mysql-mysqldump-show-tables-overflow · abraxas/mysql-mysqldump-tab-path
تنزيل الأداة