Easy File Sharing Web Server 7.2 में SEH-आधारित बफर ओवरफ्लो, जो पासवर्ड रिकवरी एंडपॉइंट के माध्यम से पहुँचा जा सकता है।
ईज़ी फ़ाइल शेयरिंग वेब सर्वर 7.2 में SEH-आधारित बफर ओवरफ्लो, जो पासवर्ड रिकवरी एंडपॉइंट के माध्यम से पहुंच योग्य है।
यह रिपॉजिटरी उस सामग्री के हिस्से के रूप में बनाई गई है जिसका उपयोग मैं कमजोरी अनुसंधान और एक्सप्लॉइट डेवलपमेंट सिखाते समय करता हूँ, विशेष रूप से SEH (स्ट्रक्चर्ड एक्सेप्शन हैंडलर) ओवरफ्लो और ROP (रिटर्न-ओरिएंटेड प्रोग्रामिंग) चेन की अवधारणा का परिचय देते समय।
यह मेरे टॉक The Path That Leads to Your First CVE से संबंधित है। उस टॉक में, मैं समझाता हूँ कि कमजोरी अनुसंधान में प्रवेश के विभिन्न बिंदु हैं, और कि लीगेसी सॉफ्टवेयर में सार्वजनिक रूप से प्रलेखित CVE का अध्ययन शुरुआती लोगों के लिए सबसे सुलभ मार्गों में से एक है।
इस CVE को इसलिए चुना गया क्योंकि यह एक पूर्ण और यथार्थवादी शोषण परिदृश्य प्रदर्शित करता है:
इस मामले को परिचयात्मक बफर ओवरफ्लो अभ्यासों और अधिक उन्नत एक्सप्लॉइट डेवलपमेंट अवधारणाओं के बीच एक कदम के रूप में उपयोग करना लक्ष्य है।
यह कमजोरी Easy File Sharing Web Server 7.2 को प्रभावित करती है, जो एक हल्का Windows वेब सर्वर एप्लिकेशन है जो सरल फ़ाइल साझाकरण के लिए व्यापक रूप से उपयोग किया जाता था। सॉफ्टवेयर आधुनिक सुरक्षा शमनों को ध्यान में रखे बिना लिखा गया था। शिक्षण के दृष्टिकोण से इस मामले को विशेष रूप से दिलचस्प बनाने वाली बात इसमें शामिल कारकों का संयोजन है:
यह संयोजन CVE-2025-34096 को यथार्थवादी अनप्रमाणित हमले परिदृश्य में एक्सप्लॉइट डेवलपमेंट तकनीक सिखाने के लिए एक उत्कृष्ट मामला बनाता है।
Easy File Sharing Web Server 7.2 एक हल्का Windows एप्लिकेशन है जो HTTP पर फ़ाइलें साझा करने के लिए बनाया गया है। बुनियादी फ़ाइल ब्राउज़िंग और उपयोगकर्ता खातों के अलावा, इसमें एक पासवर्ड रिकवरी सुविधा शामिल है, एक फॉर्म जो उपयोगकर्ताओं को अपने भूले हुए क्रेडेंशियल प्राप्त करने के लिए अपना ईमेल पता दर्ज करने देता है।
वह फॉर्म /sendemail.ghp पर पोस्ट होता है। Email फ़ील्ड को संसाधित करने वाला हैंडलर मान को बिना लंबाई जांच के सीधे एक निश्चित आकार के स्टैक बफर में कॉपी करता है। एंडपॉइंट को किसी प्रमाणीकरण की आवश्यकता नहीं होती है, इसलिए दूरस्थ हमलावर और कमजोर कोड पथ के बीच कुछ भी नहीं है।
मुख्य तकनीकी विवरण:
ईज़ी फ़ाइल शेयरिंग वेब सर्वर अपनी ईमेल सूचना सुविधा के हिस्से के रूप में /sendemail.ghp पर निर्देशित HTTP POST अनुरोधों को संसाधित करता है। इस एंडपॉइंट द्वारा स्वीकार किया गया Email पैरामीटर बिना किसी लंबाई जांच के एक स्थानीय स्टैक बफर में कॉपी हो जाता है।
कमजोर तर्क का एक सरलीकृत संस्करण इस प्रकार दिखता है:
char email_buffer[256];
strcpy(email_buffer, user_input);
चूंकि गंतव्य बफर का एक निश्चित आकार है और इनपुट की लंबाई मान्य नहीं है, इसलिए Email फ़ील्ड में पर्याप्त लंबा स्ट्रिंग भेजने के कारण कॉपी बफर के अंत से आगे लिखती है।
जैसे-जैसे अधिक डेटा लिखा जाता है, स्टैक लेआउट दूषित हो जाता है। एक साधारण रिटर्न पता ओवरराइट के विपरीत, ओवरफ्लो स्टैक पर संग्रहीत स्ट्रक्चर्ड एक्सेप्शन हैंडलर (SEH) श्रृंखला तक पहुँचता है। जब दूषित स्टैक के परिणामस्वरूप एक अपवाद ट्रिगर होता है, तो OS SEH श्रृंखला का पता लगाता है और नियंत्रण को हमलावर-नियंत्रित हैंडलर पते पर स्थानांतरित करता है।
इसलिए शोषण प्रवाह SEH ओवरराइट तकनीक का अनुसरण करता है:
यह कमजोरी को बुनियादी EIP ओवरराइट की तुलना में शोषण करना अधिक जटिल बनाता है, लेकिन वास्तविक दुनिया के परिदृश्यों का अधिक प्रतिनिधि भी बनाता है।
क्रैश को /sendemail.ghp पर POST अनुरोध के Email पैरामीटर में एक लंबा स्ट्रिंग भेजकर पुनरुत्पादित किया जा सकता है। किसी प्रमाणीकरण की आवश्यकता नहीं है। Python का उपयोग करते हुए उदाहरण:
import socket
HOST = '127.0.0.1'
PORT = 80
request = (
'POST /sendemail.ghp HTTP/1.1\r\n'
'Email=' + 'A' * 5000 + '&getPassword=Get+Password'
).encode('utf-8')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(request)
s.close()
जब डिबगर के तहत निष्पादित किया जाता है, तो क्रैश एक दूषित SEH श्रृंखला और एक एक्सेस उल्लंघन दिखाता है, यह पुष्टि करता है कि उपयोगकर्ता-नियंत्रित डेटा ने अपवाद हैंडलर पॉइंटर को ओवरराइट कर दिया है।
इस रिपॉजिटरी का लक्ष्य न केवल क्रैश प्रदर्शित करना है, बल्कि पूर्ण शोषण प्रक्रिया को चरण दर चरण समझाना भी है, जो वास्तविक SEH-आधारित एक्सप्लॉइट विकसित करते समय उपयोग की जाने वाली पद्धति का अनुसरण करता है।
मुख्य README को साफ रखने के लिए, विस्तृत शोषण नोट्स, स्क्रिप्ट और डिबगर चरण इस रिपॉजिटरी के कमजोरी 📂 फ़ोल्डर के अंदर रखे गए हैं।
वहाँ आपको इस CVE का शोषण करने के लिए उपयोग की जाने वाली पूरी कार्यप्रवाह मिलेगी, जिसमें शामिल हैं: