Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2002-1120 — Savant Web Server 3.1 में क्लासिक स्टैक-आधारित बफर ओवरफ्लो जो एक तैयार किए गए HTTP अनुरोध के माध्यम से 2000 के दशक की शुरुआत में रिमोट मेमोरी क्षति का प्रदर्शित करता है। | Kitploit
उपकरण/GitHubGitHub/themalwareguardian/cve-2002-1120
भेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगशेलकोडडीबगर्सवेब सुरक्षाफज़िंगपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
पेलोड डेवलपमेंट
बाइनरी शोषण
GitHubthemalwareguardian/cve-2002-1120

CVE-2002-1120

Savant Web Server 3.1 में क्लासिक स्टैक-आधारित बफर ओवरफ्लो जो एक तैयार किए गए HTTP अनुरोध के माध्यम से 2000 के दशक की शुरुआत में रिमोट मेमोरी क्षति का प्रदर्शित करता है।

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

🐞 CVE-2002-1120: Savant वेब सर्वर 3.1 - स्टैक-आधारित बफर ओवरफ्लो (एगहंटर)

Savant वेब सर्वर 3.1 में क्लासिक स्टैक-आधारित बफर ओवरफ्लो, जो एक क्राफ्टेड HTTP अनुरोध के माध्यम से 2000 के दशक की शुरुआत की रिमोट मेमोरी भ्रष्टाचार का प्रदर्शन करता है (2002 की एक ऐसी कमजोरी जो एक शुरुआती से अधिक मांग करती है, अधिकांश 2025 के बफर ओवरफ्लो CVE से)।




📑 विषय सूची

  • यह रिपॉजिटरी क्यों मौजूद है
  • यह कमजोरी दिलचस्प क्यों है
  • संदर्भ और प्रभावित सॉफ्टवेयर
  • कमजोरी के बारे में
  • क्रैश ट्रिगर करना
  • शोषण



🎓 यह रिपॉजिटरी क्यों मौजूद है

यह रिपॉजिटरी उस सामग्री का हिस्सा है जिसका उपयोग मैं मेमोरी भ्रष्टाचार शोषण सिखाते समय करता हूं (अपने नियमित कार्य के अलावा, मैं विभिन्न साइबर सुरक्षा पाठ्यक्रमों में भी पढ़ाता हूं जहां मैं रिवर्स इंजीनियरों की अगली पीढ़ी को प्रशिक्षित करने में मदद करता हूं)। जब मैं कक्षा में स्टैक-आधारित बफर ओवरफ्लो को कवर करता हूं, तो मैं खिलौना उदाहरणों के बजाय वास्तविक मामलों पर काम करता हूं, और यह CVE विशेष रूप से वह है जिस पर मैं तब लौटता हूं जब मैं उन छात्रों को चुनौती देना चाहता हूं जिनके पास पहले से ही बुनियादी EIP ओवरराइट का कुछ अनुभव है।

कारण यह है कि CVE पहचानकर्ता में वर्ष आपको यह नहीं बताता कि शोषण कितना कठिन है। अधिकांश छात्र मान लेते हैं कि पुराने CVE सरल होने चाहिए, एक सीधा ओवरफ्लो, एक JMP ESP, हो गया। यह अन्यथा साबित करता है। कुछ CVE जो मैं 2025 से पढ़ाता हूं, वे मौलिक रूप से इससे अधिक बुनियादी हैं, क्योंकि कमजोरी वर्ग सरल है या बाधाएं कम हैं। CVE-2002-1120 को उन चीजों को समझने की आवश्यकता है जो कुछ आधुनिक एक्सप्लॉइट मांग नहीं करते: कुछ ऑपकोड का अनुरोध के कुछ भागों में उपयोग क्यों नहीं किया जा सकता, जब अनकंडीशनल जंप अवरुद्ध हो तो हमेशा फायर होने वाली कंडीशनल जंप कैसे तैयार करें, शेलकोड कैसे डिलीवर करें जब वह उस स्थान पर फिट नहीं होता जहां आप सामान्यतः रखते हैं, और कैसे एक एगहंटर उस स्थान समस्या को हल करता है जो अन्यथा शोषण को असंभव बना देता।

यह वह CVE है जिसे मैं तब देता हूं जब मैं देखना चाहता हूं कि क्या कोई वास्तव में समझता है कि वे क्या कर रहे हैं।




💡 यह कमजोरी दिलचस्प क्यों है

यह कमजोरी Savant 3.1 को प्रभावित करती है, जो 2002 का एक फ्रीवेयर विंडोज HTTP सर्वर है। 2025 में इसका अध्ययन करने लायक क्या है, वह उम्र नहीं बल्कि इसके द्वारा प्रस्तुत बाधाओं का संयोजन और उनके आसपास काम करने के लिए आवश्यक तकनीकें हैं:

  • EIP के बाद कोई जगह नहीं। उपयोग करने योग्य बफर रिटर्न एड्रेस से पहले ~267 बाइट्स है। इससे परे कुछ भी कमजोर बफर तक नहीं पहुंचता, इसलिए शेलकोड को EIP के बाद सामान्य स्थान पर नहीं रखा जा सकता।
  • HTTP विधि फ़ील्ड निष्पादन योग्य है। Savant विधि को मेमोरी में कॉपी करता है और उसे निष्पादित करता है। जो बाइट्स सामान्यतः GET लिखते हैं, उन्हें कोड के रूप में माना जाता है, जिसका अर्थ है कि एक हमलावर वहां ऑपकोड रख सकता है, लेकिन केवल वे ऑपकोड जो एक सख्त खराब वर्ण फिल्टर से बच जाते हैं।
  • दो अलग-अलग खराब वर्ण सूचियां। URI और विधि फ़ील्ड के Savant के अंदर अलग-अलग फ़िल्टरिंग तर्क हैं। दोनों का स्वतंत्र रूप से विश्लेषण किया जाना चाहिए। विधि क्षेत्र URI की तुलना में बाइट्स के एक बहुत बड़े सेट को अवरुद्ध करता है।
  • अनकंडीशनल JMP एक खराब वर्ण है। \xeb विधि क्षेत्र फिल्टर को पास नहीं करता। एक कंडीशनल जंप जो हमेशा फायर होती है, को तीन ऑपकोड का उपयोग करके मैन्युअल रूप से बनाया जाना चाहिए: एक रजिस्टर में एक मान लोड करना, एक छोटे मान से तुलना करना, और यदि परिणाम कम या बराबर नहीं है तो जंप करना।
  • शेलकोड फिट नहीं होता। जंप के काम करने और निष्पादन के URI बफर में लैंड करने पर भी, ~264 बाइट्स रिवर्स शेल के लिए पर्याप्त नहीं है। वास्तविक पेलोड को कहीं और जाना चाहिए, HTTP बॉडी में, जिसे Savant स्टैक से अलग हीप क्षेत्र में संग्रहीत करता है, और रनटाइम पर इसका पता लगाने के लिए एक एगहंटर की आवश्यकता होती है।

इनमें से प्रत्येक बाधा अपने आप में एक सबक है।




🔍 संदर्भ और प्रभावित सॉफ्टवेयर

Savant एक फ्रीवेयर ओपन-सोर्स विंडोज HTTP सर्वर है जो मूल रूप से किसी भी डेस्कटॉप कंप्यूटर को वेब सर्वर में बदलने के लिए डिज़ाइन किया गया था। यह TCP पोर्ट 80 पर सुनता है और मानक HTTP GET अनुरोधों को प्रोसेस करता है। ओवरफ्लो उस हैंडलर में होता है जो URI पथ को एक निश्चित आकार के स्टैक बफर में कॉपी करता है, उसकी लंबाई मान्य किए बिना।

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

मुख्य तकनीकी विवरण:

  • कमजोरी का प्रकार: स्टैक-आधारित बफर ओवरफ्लो
  • प्रभावित संस्करण: Savant वेब सर्वर 3.1
  • प्रभावित एंडपॉइंट: HTTP GET अनुरोध
  • कमजोर घटक: GET हैंडलर में URI पथ हैंडलिंग
  • प्रमाणीकरण आवश्यक: नहीं
  • प्रभाव: रिमोट कोड निष्पादन



⚠️ कमजोरी के बारे में

Savant आने वाले HTTP GET अनुरोधों को प्रोसेस करता है और URI पथ को एक निश्चित आकार के स्टैक बफर में कॉपी करता है, उसकी लंबाई जांचे बिना। कमजोर तर्क का एक सरलीकृत संस्करण इस प्रकार है:

root@kitploit:~
char uri_buffer[270];

strcpy(uri_buffer, uri_path);

लगभग 271 बाइट्स के URI के साथ GET अनुरोध भेजने से स्टैक पर सहेजा गया रिटर्न एड्रेस ओवरराइट हो जाता है। ओवरफ्लो सीमित है, इससे काफी अधिक भेजने से क्रैश इस तरह से होता है कि EIP अब नियंत्रित नहीं रहता, इसलिए उपयोग करने योग्य विंडो संकीर्ण है।

शोषण एक मानक EIP ओवरराइट की तुलना में अधिक जटिल है, सर्वर के दो अतिरिक्त गुणों के कारण: HTTP विधि फ़ील्ड भी मेमोरी में कॉपी की जाती है और निष्पादित की जाती है, और HTTP अनुरोध का बॉडी स्टैक के बजाय एक अलग हीप क्षेत्र में संग्रहीत किया जाता है (ये दोनों गुण शोषण श्रृंखला के आवश्यक भाग बन जाते हैं)।




💥 क्रैश ट्रिगर करना

क्रैश को पर्याप्त लंबे URI के साथ GET अनुरोध भेजकर पुन: उत्पन्न किया जा सकता है। किसी प्रमाणीकरण की आवश्यकता नहीं है। Python का उपयोग करते हुए उदाहरण:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

payload = b"A" * 271

request = (
	b"GET /" + payload + b" HTTP/1.1\r\n"
	b"Host: 127.0.0.1\r\n"
	b"Connection: close\r\n"
	b"\r\n"
)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(request)
s.close()

जब डिबगर के तहत निष्पादित किया जाता है, तो क्रैश EIP को उपयोगकर्ता-नियंत्रित डेटा से ओवरराइट दिखाता है:

root@kitploit:~
EIP = 41414141

जो पुष्टि करता है कि सहेजा गया रिटर्न एड्रेस ओवरफ्लो द्वारा दूषित हो गया है।




💣 शोषण

इस रिपॉजिटरी का लक्ष्य केवल क्रैश का प्रदर्शन करना नहीं है, बल्कि पूरी शोषण प्रक्रिया को चरण दर चरण समझाना है, जिसमें हर वह बाधा शामिल है जो इस मामले को एक मानक EIP ओवरराइट से कठिन बनाती है और उनके आसपास काम करने के लिए लिए गए हर निर्णय को शामिल करना है।

मुख्य README को साफ रखने के लिए, विस्तृत शोषण नोट्स, स्क्रिप्ट और डिबगर चरण इस रिपॉजिटरी के Vulnerability 📂 फ़ोल्डर में रखे गए हैं।

वहां आपको इस CVE का शोषण करने के लिए उपयोग किए गए पूर्ण वर्कफ़्लो मिलेंगे, जिनमें शामिल हैं:

  • क्रैश विंडो की पहचान करने के लिए GET URI का फ़ज़िंग करना।
  • मैन्युअल ऑफसेट खोज (यहां चक्रीय पैटर्न का उपयोग नहीं किया जा सकता)।
  • URI क्षेत्र और HTTP विधि फ़ील्ड दोनों के लिए अलग-अलग खराब वर्ण विश्लेषण।
  • EIP ओवरराइट के लिए Savant.exe में POP / RET गैजेट ढूंढना।
  • गैजेट फायर होने के बाद निष्पादन के विधि फ़ील्ड में लैंड करने की पुष्टि करना।
  • विधि फ़ील्ड से URI बफर तक पहुंचने के लिए एक कंडीशनल JNLE जंप तैयार करना।
  • हीप में HTTP बॉडी का पता लगाना और उपलब्ध स्थान मापना।
  • URI बफर में एक एगहंटर और HTTP बॉडी में एग के साथ टैग किए गए शेलकोड को रखना।