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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
vsftpd-deny-file-brace-child — vsftpd 3.0.5 - उच्च - रिमोट - विशेषाधिकार शेष - ब्रेस deny_file .private/secret को छोड़ देता है | Kitploit
उपकरण/GitHubGitHub/abraxas/vsftpd-deny-file-brace-child
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणजानकारी एकत्र करनानेटवर्क सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubabraxas/vsftpd-deny-file-brace-child

vsftpd-deny-file-brace-child

vsftpd 3.0.5 - उच्च - रिमोट - विशेषाधिकार शेष - ब्रेस deny_file .private/secret को छोड़ देता है

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - vsftpd-deny-file-brace-child

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vsftpd-deny-file-brace-child

vsftpd-deny-file-brace-child

Class: Privilege leftover Reach: Remote

vsftpd 3.0.5 - Chris Evans

मैन पेज (vsftpd.conf.5) का उदाहरण है deny_file={*.mp3,*.mov,.private}। मेल खाते नाम "किसी भी तरह से सुलभ नहीं होने चाहिए," जिसमें "डाउनलोड, डायरेक्टरी में बदलना, डायरेक्टरी के भीतर किसी चीज़ को प्रभावित करना" शामिल है। vsf_access_check_file (access.c:16-43) क्लाइंट पाथ पर जैसा दिया गया है vsf_filename_passes_filter को कॉल करता है, फिर पूरे ब्रेस ट्यूनबल का str_locate_str करता है। फ़िल्टर अंतिम-घटक / प्रीफ़िक्स से मेल खाता है; बचा हुआ /secret विफल होता है; {*.mp3,*.mov,.private} का सबस्ट्रिंग मिस हो जाता है।

CWD .private अस्वीकृत है (बेसनेम हिट करता है)। RETR .private/secret और RETR dir/.private सफल होते हैं। यही "डायरेक्टरी के भीतर" वह चीज़ है जिसे यह leftover तोड़ता है।

CVE-2015-1419 एक सार्वजनिक डिस्ट्रो realpath/basename पैच है। आधिकारिक 3.0.5 ने इसे कभी नहीं लिया। Debian की ब्रेस ब्रांच अभी भी पूरे पाथ से मेल खाती है, इसलिए यह चाइल्ड वॉक पैच किए गए डिस्ट्रो पैकेजों पर भी बना रहता है। 2015-1419 को दोबारा फ़ाइल न करें।

यह leftover एक कॉन्फ़िग-गेटेड डिनाई-लिस्ट मिस है। यह unauth RCE नहीं है, chroot escape नहीं है, और होस्ट /etc रीड नहीं है।

IDअभी तक कोई CVE नहीं
ClassPrivilege leftover
ReachRemote (प्रमाणित FTP)
CWECWE-863, CWE-22
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Productvsftpd (Chris Evans)
Affectedvsftpd 3.0.5 आधिकारिक tarball SHA-256 26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3
Authप्रमाणित FTP USER/PASS (लैब में anonymous)। deny_file एक ब्रेस लिस्ट पर सेट (डिफ़ॉल्ट unset)
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1। Anonymous read-only। Witness फ़ाइल।

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

कौन: एक प्रमाणित FTP उपयोगकर्ता (लैब में anonymous ftp)। सामान्य vsftpd drop के बाद सेशन UID। deny_file वह अतिरिक्त नीति है जो उस UID से क्षमताएँ छीनने वाली थी। मैन पेज में बताए गए virtual-user रेसिपी guest_username साझा करते हैं, इसलिए Unix DAC उन्हें अलग नहीं करता। tunable_deny_file NULL के साथ स्टॉक 3.0.5 यह leftover नहीं है।

गोपनीयता (लैब-प्रमाणित)

Method + sinkPrivilege
RETR .private/secret प्रलेखित ब्रेस deny_file={*.mp3,*.mov,.private} के साथhandle_retr str_open एक ऐसी फ़ाइल की जिसका डायरेक्टरी नाम deny लिस्ट पर है, सेशन uid के रूप में। लैब: 150/226, 37 बाइट्स, बॉडी VSFTPD-DENY-FILE-BRACE-CHILD-WITNESS
RETR dir/.privateवही sink। किसी अन्य डायरेक्टरी के अंतर्गत .private नाम की फ़ाइल (must_match_at_current_pos इंडेक्स > 0 पर मैच अस्वीकार करता है)। लैब: 150/226, बॉडी DIRDOT-VSFTPD-DENY-FILE-BRACE-CHILD-WITNESS

अखंडता (उसी vsf_access_check_file गेट से अनुमानित; लैब read-only था)

Method + sinkPrivilege
STOR / APPE वही पाथ जब write_enable=YEShandle_upload_common सेशन uid के रूप में create / overwrite
DELE / RNTO वही पाथstr_unlink / उस नाम का rename जिसे denylist रोकने वाली थी

Recon (अनुमानित)

Method + sinkPrivilege
LIST .private/x (या denied ट्री के अंदर LIST)handle_dir_common पूरे arg का access-check करता है (मिस), फिर स्लैश स्प्लिट के बाद .private प्रीफ़िक्स का str_opendir। केवल नाम। Unix DAC अभी भी लागू
LIST .private/x (या denied ट्री के अंदर LIST)handle_dir_common पूरे arg का access-check करता है (मिस), फिर स्लैश स्प्लिट के बाद .private प्रीफ़िक्स का str_opendir। केवल नाम। Unix DAC अभी भी लागू

लैब-प्रमाणित नकारात्मक (उसी रन में)

Method + sinkResult
CWD .private550 Permission denied। बेसनेम .private ब्रेस हिट करता है
RETR song.mp3550। *.mp3 एक अंतिम-घटक पैटर्न है और मैच करता है

यह leftover क्या नहीं देता

  • वे फ़ाइलें जिन्हें सेशन uid Unix-open नहीं कर सकता
  • CWD .private स्वयं (बेसनेम हिट करता है)
  • dirent का hide_file LIST hide (readdir से बेसनेम; छिपे नाम का RETR प्रलेखित इच्छित है)
  • chroot से होस्ट /etc
  • अनप्रमाणित HTTP (http_enable डिफ़ॉल्ट off; FTP-mode GET सेशन को मार देता है)
  • गैर-ब्रेस deny_file=.private सबस्ट्रिंग फ़ॉलबैक से बच जाता है (.private/secret में .private का str_locate_str)
  • Unauth login skip, PORT bounce, root, chroot escape

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

मैंने GitHub मिरर या Debian/Fedora ट्री के बजाय आधिकारिक vsftpd 3.0.5 (SHA-256 26b602ae...c91d3) को पिन किया। उन्नीस सोर्स हंट्स। डिफ़ॉल्ट कंपाइल किए गए डेमन में कोई अप्रकाशित Critical/High leftover नहीं है। इसके लिए ऑपरेटर को मैन-पेज ब्रेस उदाहरण कॉपी करना आवश्यक है।

vsf_filename_passes_filter (ls.c) * / ? / unnested {,} से मेल खाता है और केवल अंतिम-घटक पैटर्न पर उपयोगी काम करता है। नाम .private/secret के लिए {*.mp3,*.mov,.private} के विरुद्ध:

  1. ब्रेस alts *.mp3, *.mov, .private को .private/secret की शुरुआत में मैच किया जाता है। बचा हुआ /secret विफल होता है जब तक कि टोकन * न हो।
  2. सबस्ट्रिंग फ़ॉलबैक शाब्दिक {*.mp3,*.mov,.private} को खोजता है और मिस कर देता है।

गलत मोड़ पहले से सार्वजनिक: CVE-2015-1419 केवल डिस्ट्रो realpath है। आधिकारिक Changelog में ऐसा कोई फ़िक्स नहीं है। Debian की ब्रेस ब्रांच भी पूरे normalized पाथ को कॉपी करती है, इसलिए चिल्ड्रन अभी भी वॉक करते हैं।

लैब

cd lab
./run.sh

लूपबैक कंट्रोल 127.0.0.1:18710, PASV 18711-18718। Compose प्रोजेक्ट vsftpd-deny-file-brace-child। आधिकारिक 3.0.5 tarball, anonymous read-only, deny_file={*.mp3,*.mov,.private}। Witness VSFTPD-DENY-FILE-BRACE-CHILD-WITNESS। अंतिम पंक्ति:

SUCCESS vsftpd-deny-file-brace-child cwd-dotprivate=550 retr-child=yes retr-dir-dotprivate=yes mp3=550 VSFTPD-DENY-FILE-BRACE-CHILD-WITNESS

फ़िक्स

ब्रेस alts को हर पाथ घटक के विरुद्ध मैच करें, या फ़िल्टर से पहले realpath / basename करें (सामान्य symlink चेतावनियों के साथ)। प्रलेखित उदाहरण को वास्तव में चिल्ड्रन को deny करना चाहिए।

Vendor intake [email protected] (vsftpd) है। किसी भी vsftpd मिरर पर सार्वजनिक GitHub issue न खोलें।

संपर्क

Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]

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