
NitroShare v0.3.4 में पाथ ट्रैवर्सल भेद्यता
NitroShare Desktop v0.3.4 में उसके LAN फ़ाइल ट्रांसफ़र सर्वर में एक पाथ ट्रैवर्सल भेद्यता मौजूद है। सर्वर बिना प्रमाणीकरण के सभी नेटवर्क इंटरफ़ेस (पोर्ट 40818) पर सुनता है। फ़ाइलें प्राप्त करते समय, प्रेषक के JSON आइटम हेडर से name फ़ील्ड को यह सत्यापित किए बिना पास किया जाता है कि हल किया गया पथ ट्रांसफ़र रूट निर्देशिका, C:\UserName\Downloads\NitroShare के भीतर रहता है या नहीं। उसी LAN पर मौजूद एक हमलावर ../ (क्लासिक डॉट डॉट स्लैश अटैक) अनुक्रमों वाली एक क्राफ्टेड फ़ाइलनाम भेज सकता है ताकि वह वर्तमान उपयोगकर्ता की पहुँच वाली किसी भी जगह पर फ़ाइलें लिख सके, जिसमें अगले लॉगिन पर कोड निष्पादन के लिए Windows स्टार्टअप फ़ोल्डर भी शामिल है (इसलिए POC बनाया गया था)। किसी उपयोगकर्ता इंटरैक्शन की आवश्यकता नहीं है। इसके अतिरिक्त, TLS डिफ़ॉल्ट रूप से अक्षम है (प्रमाणीकरण की वह विधि जो एप्लिकेशन प्रदान करता है), जिसका अर्थ है कि डिफ़ॉल्ट रूप से किसी प्रमाणीकरण की आवश्यकता नहीं है, जो मुझे लगता है कि आईटी और सूचना सुरक्षा में वर्षों के काम के आधार पर अधिकांश उपयोगकर्ता करेंगे।
{"name":"attacker","size":"<n>","count":"1"}।{"name":"../../AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/payload.exe","directory":false,"created":"0","last_modified":"0","last_read":"0","size":"<n>"}
एक कार्यशील PoC प्रदान किया गया है (poc_path_traversal_via_lan_transfer___arbitrary_file_w.py) और इसे Windows पर NitroShare 0.3.4 के विरुद्ध सत्यापित किया गया है।
/, \) और .. अनुक्रमों को हटाएं या अस्वीकार करें। QDir::absoluteFilePath() के साथ रिज़ॉल्व करने के बाद, आगे बढ़ने से पहले सत्यापित करें कि परिणाम रूट ट्रांसफ़र निर्देशिका से शुरू होता है।