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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
lighttpd-win32-dotdot-space — lighttpd 1.4.85 - عالي - عن بُعد - مسار - Win32 الأصلي GET /..%20/ يقرأ خارج جذر المستند | Kitploit
أدوات/GitHubGitHub/abraxas/lighttpd-win32-dotdot-space
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقمختبرات وتدريب عملي
GitHubabraxas/lighttpd-win32-dotdot-space

lighttpd-win32-dotdot-space

lighttpd 1.4.85 - عالي - عن بُعد - مسار - Win32 الأصلي GET /..%20/ يقرأ خارج جذر المستند

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - lighttpd-win32-dotdot-space

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  lighttpd-win32-dotdot-space

lighttpd-win32-dotdot-space

الفئة: قراءة ملف الوصول: عن بُعد

lighttpd 1.4.85 (4852959) - lighttpd

يقوم _WIN32 الأصلي في staticfile بدمج document-root مع rel_path بعد buffer_path_simplify. تقوم Simplify بطي ../ فقط عندما يكون البايت الثالث هو /. يقوم http_response_prepare_physical بإزالة المسافات والنقاط اللاحقة من المسار بالكامل فقط. لذلك يبقى GET /..%20/windows/win.ini كـ /.. /windows/win.ini. ثم يسمح _wstati64 / _wopen بدون بادئة \\?\ لـ Win32 بإزالة المسافة لكل مكوّن ومعاملة ذلك المقطع كـ ...

طلب GET/HEAD غير مُصادَق عليه على lighttpd الأصلي في Windows يقرأ ملفًا عاديًا خارج document-root يمكن لحساب العامل فتحه. لا ينطبق هذا على Unix/Linux. قراءة ملف، وليس تنفيذ كود عن بُعد.

المختبر عبارة عن أداة محاكاة لتلك الدوال المثبّتة. إنه ليس عامل Win32 أصلي حي. السطر الأخير يستخدم how=gadget.

المعرّفلا يوجد CVE بعد
الفئةقراءة ملف (اجتياز المسار، ..%20/ الأصلي في Win32)
الوصولعن بُعد (GET/HEAD غير مُصادَق عليه)
CWECWE-22
CVSSمرتفع: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
المنتجlighttpd1.4
المتأثر1.4.85 (4852959e67ef51ea68084984400d3264b854c97d) _WIN32 الأصلي
المصادقةلا شيء. mod_staticfile الافتراضي
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط، how=gadget

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

يحتاج إلى lighttpd أصلي في Windows يخدم الملفات الثابتة. يجب أن يكون حساب العامل قادرًا على فتح الملف العادي المستهدف.

الصلاحيةالطريقة / الهدفمُثبت مختبريًا أو مُستنتج
قراءة ملف خارج document-rootGET /..%20/<name> غير مُصادَق عليهمُثبت مختبريًا (أداة محاكاة). جسم HTTP 200 هو السر الأبعد
نفس الفئة لمسافة/نقطة ASCII لاحقة أخرى على مكوّن .. غير نهائيفك ترميز url ثم simplify يحتفظ بـ .. مُثبت مختبريًا لـ %20. مُستنتج لمسافة/نقطة لاحقة أخرى
HEAD لنفس المسارstaticfile HEADمُستنتج. استخدم المختبر GET
سلبي: /../ الحقيقيbuffer_path_simplify يطوي ../مُثبت مختبريًا. 404، مبسّط إلى /windows/win.ini، لا شاهد
سلبي: فتح Unix POSIX للسلسلة الفيزيائية غير المبسّطةopen("/srv/htdocs/.. /windows/win.ini")مُثبت مختبريًا. ENOENT

مغلق على هذه البقايا: staticfile في Unix/Linux؛ Cygwin (نفس الإزالة، فتح POSIX)؛ %5C parseopt في 1.4.85؛ CVE-2018-19052 alias؛ CVE-2014-2324 Host. ليس RCE. ليس كتابة.

كيف وجدته

ثبّتت الوسم lighttpd-1.4.85. عشرون عملية بحث. staticfile الافتراضي في Unix/Linux، FastCGI، proxy، TLS، auth، HTTP/2، alias/rewrite: لا شيء عند هذا الحد. موجة المحللات 1.4.81-1.4.85 أغلقت بالفعل trailers، وتعارضات ترويسة CGI، وContent-Length الخلفي غير الصالح.

يطوي buffer_path_simplify فقط ../ عندما يكون walk[2] == '/'. إزالة WIN32 في http_response_prepare_physical (src/response.c 334-360) هي ذيل المسار بالكامل. يمرّر _wstati64 / _wopen (src/fs_win32.c 24-77) UTF-16 بدون \\?\، لذا يزيل Win32 المسافات اللاحقة لكل مكوّن ويصبح .. هو ... الدمج الفيزيائي هو doc_root + rel_path بدون فحص basedir بعد stat.

المنعطفات الخاطئة المسجّلة بالفعل: معاملة Unix ENOENT كـ "ليس خطأً" (إنه الضابط السلبي)؛ تسمية Cygwin بأنه Win32 أصلي؛ الادعاء بأن %5C في 1.4.85 هو هذه البقايا؛ تضخيم قراءة الملف إلى RCE. مسرحية: reverse shell. الأوراكل هو جسم 200 من أب document-root.

المختبر

python3 lighttpd-win32-dotdot-space-Abraxas-Labs.py

أو

cd lab
./run.sh

المختبر عبارة عن أداة محاكاة أمينة لـ buffer_urldecode_path، وbuffer_path_simplify (خريطة '\\' في Win32)، وإزالة الذيل في response.c، و_wstati64 بدون \\?\. فتح Unix POSIX هو الضابط السلبي. يُنفَّذ تحليل Win32 كإزالة المسافات اللاحقة لكل مكوّن نفسها، ثم . / ..، ثم فتح POSIX للمسار المحلول. HTTP عبر loopback على 127.0.0.1:19400.

  1. GET /index.html -> 200 public-index، لا شاهد.
  2. GET /../windows/win.ini -> 404، مبسّط إلى /windows/win.ini.
  3. GET /..%20/windows/win.ini -> مفكوك الترميز /.. /windows/win.ini، احتفظ simplify بالمسافة، Unix ENOENT، حلّ Win32 إلى /srv/windows/win.ini، شاهد 200.
SUCCESS lighttpd-win32-dotdot-space how=gadget win32-get=200 unix-open=enoent simplify-kept-dotdot-space=yes LIGHTTPD-WIN32-DOTDOT-SPACE-WITNESS

الإصلاح

أزل المسافات والنقاط اللاحقة لكل مكوّن مسار قبل simplify، أو ضع بادئة \\?\ على فتحات Win32 وارفض أي مسار فيزيائي لا يبقى تحت document-root.

المراجع

  • github.com/lighttpd/lighttpd1.4 وسم lighttpd-1.4.85 (4852959e67ef51ea68084984400d3264b854c97d)
  • src/buffer.c · src/response.c · src/fs_win32.c
  • قريب مُرقّع (ليس هذه البقايا): CVE-2025-12642 trailers · %5C parseopt في 1.4.85 · CVE-2018-19052 alias · CVE-2014-2324 Host
  • CWE-22

الترخيص

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

تنزيل الأداة