Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
lighttpd-win32-dotdot-space — lighttpd 1.4.85 - High - Remote - Path - native Win32 GET /..%20/ document-root के बाहर पढ़ता है | Kitploit
उपकरण/GitHubGitHub/abraxas/lighttpd-win32-dotdot-space
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubabraxas/lighttpd-win32-dotdot-space

lighttpd-win32-dotdot-space

lighttpd 1.4.85 - High - Remote - Path - native Win32 GET /..%20/ document-root के बाहर पढ़ता है

रिपॉजिटरी देखें
46 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Abraxas Labs - lighttpd-win32-dotdot-space

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

राइट-अप: https://abraxaslabs.tech/research/lighttpd-win32-dotdot-space

lighttpd-win32-dotdot-space

वर्ग: फ़ाइल पठन पहुँच: रिमोट

lighttpd 1.4.85 (4852959) - lighttpd

नेटिव _WIN32 staticfile, buffer_path_simplify के बाद document-root को rel_path से जोड़ता है। Simplify केवल तब ../ को फोल्ड करता है जब तीसरा बाइट / हो। http_response_prepare_physical केवल पूरे पथ से अनुगामी स्पेस और डॉट्स को हटाता है। इसलिए GET /..%20/windows/win.ini /.. /windows/win.ini ही रहता है। फिर \\?\ प्रीफ़िक्स के बिना _wstati64 / _wopen Win32 को प्रति-घटक स्पेस हटाने देते हैं और उस सेगमेंट को .. मान लेते हैं।

नेटिव Windows lighttpd पर अनप्रमाणित GET/HEAD, document-root के बाहर की उस नियमित फ़ाइल को पढ़ता है जिसे वर्कर अकाउंट खोल सकता है। Unix/Linux इस अवशेष में नहीं आता। यह फ़ाइल पठन है, RCE नहीं।

लैब उन पिन फ़ंक्शन्स का एक गैजेट है। यह लाइव नेटिव Win32 वर्कर नहीं है। अंतिम पंक्ति how=gadget का उपयोग करती है।

IDअभी कोई CVE नहीं
वर्गफ़ाइल पठन (पथ ट्रैवर्सल, नेटिव Win32 ..%20/)
पहुँचरिमोट (अनप्रमाणित 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

एक हमलावर क्या कर सकता है

नेटिव Windows lighttpd की आवश्यकता है जो स्टैटिक फ़ाइलें सर्व कर रहा हो। वर्कर अकाउंट को लक्ष्य नियमित फ़ाइल खोलने में सक्षम होना चाहिए।

विशेषाधिकारविधि / सिंकलैब-प्रमाणित या अनुमानित
document-root के बाहर की फ़ाइल पढ़नाअनप्रमाणित GET /..%20/<name>लैब-प्रमाणित (गैजेट)। HTTP 200 बॉडी पैरेंट सीक्रेट है
गैर-अंतिम .. घटक पर अन्य अनुगामी ASCII स्पेस/डॉट के लिए समान वर्गurl-decode फिर simplify .. रखता है%20 के लिए लैब-प्रमाणित। अन्य अनुगामी स्पेस/डॉट के लिए अनुमानित
उसी पथ पर HEADstaticfile HEADअनुमानित। लैब ने GET का उपयोग किया
नकारात्मक: वास्तविक /../buffer_path_simplify ../ को फोल्ड करता हैलैब-प्रमाणित। 404, सरलीकृत /windows/win.ini, कोई विटनेस नहीं
नकारात्मक: अनसिम्प्लिफ़ाइड भौतिक स्ट्रिंग का Unix POSIX openopen("/srv/htdocs/.. /windows/win.ini")लैब-प्रमाणित। ENOENT

इस अवशेष पर बंद: Unix/Linux staticfile; Cygwin (समान स्ट्रिप, POSIX open); 1.4.85 %5C parseopt; CVE-2018-19052 alias; CVE-2014-2324 Host। RCE नहीं। राइट नहीं।

मैंने इसे कैसे खोजा

मैंने टैग lighttpd-1.4.85 को पिन किया। बीस शिकार। डिफ़ॉल्ट Unix/Linux staticfile, FastCGI, proxy, TLS, auth, HTTP/2, alias/rewrite: इस बार पर कोई नहीं। 1.4.81-1.4.85 पार्सर लहर ने पहले ही trailers, CGI हेडर विरोधाभास, और अमान्य बैकएंड Content-Length को बंद कर दिया था।

buffer_path_simplify केवल तब ../ को फोल्ड करता है जब walk[2] == '/' हो। http_response_prepare_physical (src/response.c 334-360) में WIN32 स्ट्रिप पूरे-पथ का टेल है। _wstati64 / _wopen (src/fs_win32.c 24-77) \\?\ के बिना UTF-16 पास करते हैं, इसलिए Win32 प्रति-घटक अनुगामी स्पेस हटाता है और .. .. बन जाता है। भौतिक जॉइन doc_root + rel_path है जिसमें स्टैट के बाद कोई basedir जाँच नहीं है।

गलत मोड़ जो पहले से दर्ज हैं: Unix ENOENT को "बग नहीं" मानना (यह नकारात्मक नियंत्रण है); Cygwin को मूल Win32 कहना; यह दावा करना कि 1.4.85 %5C यही अवशेष है; फ़ाइल पढ़ने को RCE तक बढ़ा-चढ़ाकर बताना। नाटक: एक रिवर्स शेल। ओरेकल document-root के पैरेंट से आने वाला 200 बॉडी है।

लैब

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

या

cd lab
./run.sh

लैब buffer_urldecode_path, buffer_path_simplify (Win32 '\\' मैप), response.c टेल स्ट्रिप, और \\?\ के बिना _wstati64 का एक निष्ठावान गैजेट है। Unix POSIX open नकारात्मक नियंत्रण है। Win32 resolve को समान प्रति-घटक ट्रेलिंग-स्पेस स्ट्रिप, फिर . / .., फिर resolved पथ के POSIX open के रूप में लागू किया गया है। लूपबैक HTTP 127.0.0.1:19400।

  1. GET /index.html -> 200 public-index, कोई witness नहीं।
  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 resolve किया, 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

समाधान

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 · 1.4.85 %5C parseopt · CVE-2018-19052 alias · CVE-2014-2324 Host
  • CWE-22

लाइसेंस

GNU Affero GPL v3.0. देखें LICENSE. केवल लूपबैक लैब। कोई वारंटी नहीं।

टूल डाउनलोड करें