Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
lighttpd-win32-dotdot-space — lighttpd 1.4.85 – Hoch – Remote – Pfad – native Win32 GET /..%20/ liest außerhalb des Document-Root | Kitploit
Tools/GitHubGitHub/abraxas/lighttpd-win32-dotdot-space
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsLabs & Praxis
GitHubabraxas/lighttpd-win32-dotdot-space

lighttpd-win32-dotdot-space

lighttpd 1.4.85 – Hoch – Remote – Pfad – native Win32 GET /..%20/ liest außerhalb des Document-Root

Repository anzeigen
vor 2 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - lighttpd-win32-dotdot-space

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

lighttpd-win32-dotdot-space

Klasse: Dateilesen Reichweite: Remote

lighttpd 1.4.85 (4852959) - lighttpd

Natives _WIN32 staticfile verbindet document-root mit rel_path nach buffer_path_simplify. Simplify faltet ../ nur, wenn das dritte Byte / ist. http_response_prepare_physical entfernt abschließende Leerzeichen und Punkte nur vom gesamten Pfad. GET /..%20/windows/win.ini bleibt daher /.. /windows/win.ini. _wstati64 / _wopen ohne \\?\-Präfix lassen Win32 dann das Leerzeichen pro Komponente entfernen und dieses Segment als .. behandeln.

Unauthentifiziertes GET/HEAD auf nativem Windows-lighttpd liest eine reguläre Datei außerhalb von document-root, die das Worker-Konto öffnen kann. Unix/Linux ist nicht dieser Überrest. Dateilesen, kein RCE.

Das Lab ist ein Gadget dieser Pin-Funktionen. Es ist kein laufender nativer Win32-Worker. Die letzte Zeile verwendet how=gadget.

IDnoch keine CVE
KlasseDateilesen (Path Traversal, natives Win32 ..%20/)
ReichweiteRemote (unauthentifiziertes GET/HEAD)
CWECWE-22
CVSSHoch: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Produktlighttpd1.4
Betroffen1.4.85 (4852959e67ef51ea68084984400d3264b854c97d) natives _WIN32
Authkeine. Standard-mod_staticfile
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1, how=gadget

Was ein Angreifer tun kann

Benötigt natives Windows-lighttpd, das statische Dateien ausliefert. Das Worker-Konto muss die Ziel-Regulärdatei öffnen können.

PrivilegMethode / SinkIm Lab bewiesen oder abgeleitet
Eine Datei außerhalb von document-root lesenUnauth GET /..%20/<name>Im Lab bewiesen (Gadget). HTTP-200-Body ist das Parent-Secret
Gleiche Klasse für anderes abschließendes ASCII-Leerzeichen/Punkt in einer nicht-finalen ..-Komponenteurl-decode, dann simplify behält .. Im Lab bewiesen für %20. Abgeleitet für anderes abschließendes Leerzeichen/Punkt
HEAD auf denselben Pfadstaticfile HEADAbgeleitet. Lab verwendete GET
Negativ: echtes /../buffer_path_simplify faltet ../Im Lab bewiesen. 404, vereinfacht /windows/win.ini, kein Witness
Negativ: Unix-POSIX-open des nicht vereinfachten physischen Stringsopen("/srv/htdocs/.. /windows/win.ini")Im Lab bewiesen. ENOENT

Geschlossen bei diesem Überrest: Unix/Linux-staticfile; Cygwin (gleicher Strip, POSIX-open); 1.4.85 %5C parseopt; CVE-2018-19052 alias; CVE-2014-2324 Host. Kein RCE. Kein Write.

Wie ich es gefunden habe

Ich habe den Tag lighttpd-1.4.85 gepinnt. Zwanzig Jagden. Standard-Unix/Linux-staticfile, FastCGI, Proxy, TLS, Auth, HTTP/2, alias/rewrite: nichts auf dieser Latte. Die Parser-Welle 1.4.81-1.4.85 hatte bereits Trailer, CGI-Header-Konflikte und ungültige Backend-Content-Length geschlossen.

buffer_path_simplify faltet ../ nur, wenn walk[2] == '/'. Der WIN32-Strip in http_response_prepare_physical (src/response.c 334-360) ist der Ganzpfad-Tail. _wstati64 / _wopen (src/fs_win32.c 24-77) übergeben UTF-16 ohne \\?\, sodass Win32 abschließende Leerzeichen pro Komponente entfernt und .. zu .. wird. Der physische Join ist doc_root + rel_path ohne Post-Stat-basierte basedir-Prüfung.

Bereits festgehaltene Irrwege: Unix-ENOENT als „kein Bug" behandeln (es ist die Negativkontrolle); Cygwin als natives Win32 bezeichnen; behaupten, 1.4.85 %5C sei dieser Überrest; Dateilesen zu RCE aufblasen. Theater: eine Reverse Shell. Das Orakel ist ein 200-Body vom Parent von document-root.

Lab

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

oder

cd lab
./run.sh

Das Lab ist ein originalgetreues Gadget von buffer_urldecode_path, buffer_path_simplify (Win32-'\\'-Map), dem response.c-Tail-Strip und _wstati64 ohne \\?\. Unix-POSIX-open ist die Negativkontrolle. Win32-Resolve ist implementiert als derselbe pro-Komponente-Strip abschließender Leerzeichen, dann . / .., dann ein POSIX-open des aufgelösten Pfads. Loopback-HTTP 127.0.0.1:19400.

  1. GET /index.html -> 200 public-index, kein Witness.
  2. GET /../windows/win.ini -> 404, vereinfacht /windows/win.ini.
  3. GET /..%20/windows/win.ini -> dekodiert /.. /windows/win.ini, simplify behielt das Leerzeichen, Unix ENOENT, Win32 aufgelöst /srv/windows/win.ini, 200 Witness.
SUCCESS lighttpd-win32-dotdot-space how=gadget win32-get=200 unix-open=enoent simplify-kept-dotdot-space=yes LIGHTTPD-WIN32-DOTDOT-SPACE-WITNESS

Der Fix

Abschließende Leerzeichen und Punkte pro Pfadkomponente vor simplify entfernen, oder Win32-Opens mit \\?\ präfixen und einen physischen Pfad ablehnen, der nicht unter document-root bleibt.

Referenzen

  • github.com/lighttpd/lighttpd1.4 Tag lighttpd-1.4.85 (4852959e67ef51ea68084984400d3264b854c97d)
  • src/buffer.c · src/response.c · src/fs_win32.c
  • In der Nähe gepatcht (nicht dieser Überrest): CVE-2025-12642 Trailer · 1.4.85 %5C parseopt · CVE-2018-19052 alias · CVE-2014-2324 Host
  • CWE-22

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen