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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
proftpd-rewrite-utf8trans — ProFTPD 1.3.9d - عالي - عن بُعد - انهيار - تجاوز سعة BSS في RewriteMap int:utf8trans | Kitploit
أدوات/GitHubGitHub/abraxas/proftpd-rewrite-utf8trans
تحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيأمن الشبكاتاختبار الاختراقتحليل الملفات الثنائيةمختبرات وتدريب عملي
GitHubabraxas/proftpd-rewrite-utf8trans

proftpd-rewrite-utf8trans

ProFTPD 1.3.9d - عالي - عن بُعد - انهيار - تجاوز سعة BSS في RewriteMap int:utf8trans

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - proftpd-rewrite-utf8trans

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  proftpd-rewrite-utf8trans

proftpd-rewrite-utf8trans

الفئة: انهيار الوصول: عن بُعد

ProFTPD 1.3.9d (f59f248) - ProFTPD (proftpd.org)

يوفّر contrib mod_rewrite الخريطة RewriteMap int:utf8trans. تنسخ هذه الخريطة المدمجة وسيط FTP قادمًا من العميل (حتى CommandBufferSize، 512 KiB) إلى مخزنَي BSS بحجم 1024 خانة دون حدّ أقصى للوجهة. اسم STOR طويل من ASCII يؤدي إلى global-buffer-overflow WRITE بحجم 8 في ASan. تنهار عملية الجلسة الفرعية. تبقى الخدمة الخلفية قائمة. الفئة انهيار. ليس RCE.

المعرّفلا يوجد CVE بعد
الفئةانهيار
الوصولعن بُعد (وسيط FTP يُمرَّر إلى int:utf8trans)
CWECWE-120
CVSSمرتفع: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H إذا كانت RewriteRule قبل المصادقة. استخدم المختبر STOR بعد تسجيل الدخول، لذا فإن PR:L صادق لتلك التجربة (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H).
المنتجProFTPD
المتأثر1.3.9d (f59f248e26bdfa514443e42bf72a145641df635d) contrib mod_rewrite
المصادقةالمختبر يستخدم STOR بعد المصادقة. RewriteRule قبل المصادقة على USER أو ما شابه ستكون PR:N.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

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

RewriteEngine معطّل حتى يتم إعداده. النمط الموثّق هو RewriteRule (.*) ${map:$1}. بمجرد أن تمرّر RewriteRule وسيط العميل عبر int:utf8trans، فإن مفتاحًا أطول من 1024 بايت يفيض عن مخزنَين ثابتين في عملية الجلسة الفرعية.

الطريقةنقطة الوصولالصلاحية
أمر FTP وسيطه هو مفتاح خريطة utf8trans، بطول > 1024rewrite_utf8_to_ucs4 ثم utf8_val[i] = ucs4_longs[i]التوافر (مُثبت مختبريًا): انهيار عملية الجلسة الفرعية. ASan: global-buffer-overflow WRITE of size 8، ثم ABORTING. Prefork: تسجيل دخول جديد ظل يعمل؛ بقيت الخدمة الخلفية قائمة. STOR قصير بحجم 200 بايت ASCII نجا. سلامة BSS الخاصة بـ rewrite المجاورة مُستنتجة وتعتمد على تخطيط المترجم.
RIP / تنفيذ شيفرةلا شيء مُدّعىمغلق. لا حمولة. الفئة انهيار. ليس RCE.
زرع RewriteMap في .ftpaccessCONF_DYNDIRمغلق. RewriteMap غير مسموح به في .ftpaccess.
prg: shellلا يوجد نوع خريطة كهذامغلق. FIFO هو إدخال/إخراج سطري.

مُثبت مختبريًا مقابل مُستنتج: WRITE بحجم 8 في ASan، وانهيار عملية الجلسة الفرعية، وضابط الوسيط القصير الناجي، وتسجيل الدخول بعد التحفيز كلها مُثبتة مختبريًا. RIP/RCE غير مُدّعى.

Issue 2173 رقّع int:unescape من OOB بحجم بايت واحد على هذه النسخة. هذه البقايا هي int:utf8trans. مدمج مختلف. خطأ مختلف.

كيف وجدته

ثبّتت proftpd/proftpd على الوسم v1.3.9d. كانت حصيلة CVE لعام 2026 وقضايا GitHub العامة التي لا تزال قائمة في ذلك الأرشيف (2170، 2173، 2175، 2180، 2095، 2256، 2286، 2319، 2330، 2301) هي قائمة التخطي. لم يمنحني FTP الأساسي الافتراضي مع basic.conf النموذجي ثغرة Crit/High غير منشورة. فعل ذلك contrib rewrite.

rewrite_map_int_utf8trans (في contrib/mod_rewrite.c) يحتوي على:

static unsigned char utf8_val[PR_TUNABLE_BUFFER_SIZE];   /* 1024 */
static unsigned long ucs4_longs[PR_TUNABLE_BUFFER_SIZE]; /* 1024 */
ucs4strlen = rewrite_utf8_to_ucs4(ucs4_longs, strlen(key), (unsigned char *) key);

يكتب rewrite_utf8_to_ucs4 قيمة unsigned long واحدة لكل بايت ASCII دون حدّ أقصى. قيمة PR_TUNABLE_CMD_BUFFER_SIZE هي 512 KiB. القضية 2173 أصلحت unescape بالفعل. لم تكن هذه الخريطة ضمن ذلك الإصلاح.

المنعطفات الخاطئة: اعتبار 2173 هو هذا الخطأ؛ ادعاء RIP لأن ASan قال WRITE of size 8؛ الأمل في أن .ftpaccess يمكنه زرع RewriteMap. الأول دالة مختلفة. الثاني لا يزال انهيارًا. الثالث هو CONF_DYNDIR.

ASan مع libcrypt القياسي يسببان SIGSEGV عند PASS قبل نقطة وصول rewrite. يحمّل المختبر مسبقًا كعبًا صغيرًا لـ crypt(3) حتى يعمل تسجيل الدخول. ذلك الكعب ليس استغلالًا.

المختبر

python3 proftpd-rewrite-utf8trans-Abraxas-Labs.py

أو:

cd lab
./run.sh

Loopback 127.0.0.1:18740 بالإضافة إلى passive 18741-18750. مشروع Compose باسم proftpd-rewrite-utf8trans. الشاهد PROFTPD-REWRITE-UTF8TRANS-WITNESS. الصورة عبارة عن بناء ASan للإصدار 1.3.9d من mod_rewrite. STOR الضابط بحجم 200 بايت ASCII ينجح. STOR بحجم 2048 بايت ASCII هو global-buffer-overflow WRITE of size 8 في ASan وتنهار عملية الجلسة الفرعية. تسجيل الدخول الجديد بعد التحفيز لا يزال يعمل.

SUCCESS PROFTPD-REWRITE-UTF8TRANS asan=global-buffer-overflow write=yes child-dead=yes PROFTPD-REWRITE-UTF8TRANS-WITNESS

الإصلاح

حدّد طول وجهة rewrite_utf8_to_ucs4 بـ PR_TUNABLE_BUFFER_SIZE-1. أوقف الكتابة بعد ucs4_longs / utf8_val. ارفض أو اقتطع أي مفتاح خريطة لا يتسع.

المراجع

  • github.com/proftpd/proftpd الوسم v1.3.9d (f59f248e26bdfa514443e42bf72a145641df635d)
  • contrib/mod_rewrite.c rewrite_utf8_to_ucs4 / rewrite_map_int_utf8trans
  • مُرقّع قريب (ليس هذه الخريطة): Issue 2173 int:unescape
  • CWE-120

الترخيص

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

تنزيل الأداة