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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
proftpd-rewrite-utf8trans — ProFTPD 1.3.9d - उच्च - रिमोट - क्रैश - RewriteMap int:utf8trans BSS ओवरफ़्लो | Kitploit
उपकरण/GitHubGitHub/abraxas/proftpd-rewrite-utf8trans
भेद्यता विश्लेषणशोषणफज़िंगनेटवर्क सुरक्षापेनिट्रेशन टेस्टिंगबाइनरी विश्लेषणलैब और अभ्यास
GitHubabraxas/proftpd-rewrite-utf8trans

proftpd-rewrite-utf8trans

ProFTPD 1.3.9d - उच्च - रिमोट - क्रैश - RewriteMap int:utf8trans BSS ओवरफ़्लो

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - proftpd-rewrite-utf8trans

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

राइट-अप: https://abraxaslabs.tech/research/proftpd-rewrite-utf8trans

proftpd-rewrite-utf8trans

वर्ग: क्रैश पहुँच: रिमोट

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

contrib mod_rewrite में RewriteMap int:utf8trans शामिल है। यह बिल्टइन क्लाइंट FTP आर्ग्युमेंट (अधिकतम CommandBufferSize, 512 KiB) को दो 1024-स्लॉट BSS बफ़र्स में कॉपी करता है, बिना किसी डेस्टिनेशन कैप के। एक लंबा ASCII STOR नाम ASan global-buffer-overflow WRITE of size 8 उत्पन्न करता है। सत्र चाइल्ड एबॉर्ट हो जाता है। डेमॉन चालू रहता है। वर्ग क्रैश। RCE नहीं।

IDअभी तक कोई CVE नहीं
वर्गक्रैश
पहुँचरिमोट (int:utf8trans को दिया गया FTP आर्ग्युमेंट)
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 है। USER या इसी तरह पर प्री-ऑथ RewriteRule 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: एक नया लॉगिन अभी भी काम करता रहा; डेमॉन चालू रहा। 200 ASCII बाइट्स का छोटा STOR बच गया। आस-पास की rewrite BSS अखंडता अनुमानित और कंपाइलर-लेआउट पर निर्भर है।
RIP / कोड निष्पादनकोई दावा नहींबंद। कोई पेलोड नहीं। वर्ग क्रैश। RCE नहीं।
RewriteMap का .ftpaccess प्लांटCONF_DYNDIRबंद। .ftpaccess में RewriteMap की अनुमति नहीं है।
prg: शेलऐसा कोई मैप प्रकार नहींबंद। FIFO लाइन I/O है।

लैब-प्रमाणित बनाम अनुमानित: ASan WRITE of size 8, सत्र-चाइल्ड एबॉर्ट, बचने वाला शॉर्ट-आर्ग्युमेंट कंट्रोल, और ट्रिगर के बाद लॉगिन लैब-प्रमाणित हैं। RIP/RCE का दावा नहीं किया गया है।

Issue 2173 ने इस पिन पर int:unescape के एक-बाइट OOB को पैच किया। यह शेष int:utf8trans है। अलग बिल्टइन। अलग बग।

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

मैंने proftpd/proftpd टैग v1.3.9d को पिन किया। 2026 की CVE फ़सल और उस टारबॉल में अभी भी मौजूद सार्वजनिक GitHub इश्यूज़ (2170, 2173, 2175, 2180, 2095, 2256, 2286, 2319, 2330, 2301) स्किप लिस्ट थे। नमूना basic.conf के साथ डिफ़ॉल्ट कोर FTP ने मुझे कोई अप्रकाशित 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 प्रत्येक ASCII बाइट के लिए एक unsigned long लिखता है, बिना किसी सीमा के। PR_TUNABLE_CMD_BUFFER_SIZE 512 KiB है। Issue 2173 ने पहले ही unescape को ठीक कर दिया था। यह मैप उस फिक्स में शामिल नहीं था।

गलत रास्ते: 2173 को इस बग के रूप में मानना; ASan द्वारा size 8 का WRITE बताए जाने पर RIP होने का दावा करना; यह उम्मीद करना कि .ftpaccess RewriteMap लगा सकता है। पहला एक अलग फंक्शन है। दूसरा अभी भी Crash है। तीसरा CONF_DYNDIR है।

ASan के साथ-साथ स्टॉक libcrypt, rewrite sink से पहले PASS पर SIGSEGV करता है। लैब एक छोटा crypt(3) स्टब प्रीलोड करता है ताकि लॉगिन काम करे। वह स्टब कोई एक्सप्लॉइट नहीं है।

Lab

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

या:

cd lab
./run.sh

Loopback 127.0.0.1:18740 के साथ-साथ passive 18741-18750। Compose प्रोजेक्ट proftpd-rewrite-utf8trans। Witness PROFTPD-REWRITE-UTF8TRANS-WITNESS। Image 1.3.9d mod_rewrite का ASan build है। 200 ASCII बाइट्स के STOR का नियंत्रण सफल होता है। 2048 ASCII बाइट्स के STOR में size 8 का ASan global-buffer-overflow WRITE होता है और session child abort हो जाता है। ट्रिगर के बाद नया login अभी भी काम करता है।

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। केवल लूपबैक लैब। कोई वारंटी नहीं।

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