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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-70330 — ईज़ी ग्रेड प्रो 4.1 फ़ाइल पार्सिंग बग को एक शैक्षिक उदाहरण के रूप में उपयोग किया गया है, जो शुरुआती लोगों को रिवर्स इंजीनियरिंग के माध्यम से भेद्यता अनुसंधान शुरू करने का तरीका दिखाता है। | Kitploit
उपकरण/GitHubGitHub/themalwareguardian/cve-2025-70330
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणशोषणरिवर्स इंजीनियरिंगडीबगर्सफज़िंगबाइनरी विश्लेषणलर्निंग और शिक्षा
बाइनरी शोषण
GitHubthemalwareguardian/cve-2025-70330

CVE-2025-70330

ईज़ी ग्रेड प्रो 4.1 फ़ाइल पार्सिंग बग को एक शैक्षिक उदाहरण के रूप में उपयोग किया गया है, जो शुरुआती लोगों को रिवर्स इंजीनियरिंग के माध्यम से भेद्यता अनुसंधान शुरू करने का तरीका दिखाता है।

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

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

सभी देखें →

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

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

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

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

🧩 CVE-2025-70330: Easy Grade Pro 4.1 फ़ाइल पार्सिंग भेद्यता

एक शैक्षिक उदाहरण जो शुरुआती लोगों को दिखाने के लिए बनाया गया है कि रिवर्स इंजीनियरिंग के माध्यम से भेद्यता अनुसंधान शुरू से ही संभव है।




📑 विषय सूची

  • यह रिपॉजिटरी क्यों मौजूद है
  • "द पाथ दैट लीड्स टू योर फर्स्ट सीवीई" से संबंध
  • पुराना सॉफ्टवेयर सीखने के लिए क्यों उपयुक्त है
  • यह उदाहरण क्यों महत्वपूर्ण है
  • भेद्यता के बारे में
  • तकनीकी विश्लेषण
  • 📂
    • केवल विशिष्ट दूषित फ़ाइलें ही एप्लिकेशन को क्रैश क्यों करती हैं
    • प्रूफ ऑफ कॉन्सेप्ट
    • क्रैश व्यवहार
    • नोट्स



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

यह रिपॉजिटरी एक सरल उदाहरण की आवश्यकता से उत्पन्न हुई है जिसका उपयोग उन शुरुआती लोगों को पढ़ाने के दौरान किया जा सकता है जो भेद्यता अनुसंधान में शुरुआत कर रहे हैं, विशेष रूप से वे जो रिवर्स इंजीनियरिंग में रुचि रखते हैं।

बाइनरी एक्सप्लॉइटेशन या बाइनरी विश्लेषण से संबंधित किसी पाठ्यक्रम, प्रशिक्षण सत्र या मास्टर प्रोग्राम को पूरा करने के बाद, कई छात्रों को लगता है कि वास्तविक भेद्यता अनुसंधान उनके स्तर से कहीं परे है। वे आमतौर पर रिवर्स इंजीनियरिंग को कर्नेल भेद्यताओं, ब्राउज़र एक्सप्लॉइटेशन, फर्मवेयर अनुसंधान या जटिल आधुनिक लक्ष्यों जैसे बहुत उन्नत विषयों से जोड़ते हैं, और इस वजह से उन्हें लगता है कि वे अभी तैयार नहीं हैं। व्यवहार में, समस्या ज्ञान की कमी नहीं है, बल्कि एक यथार्थवादी शुरुआती बिंदु की कमी है।

मैं एक ऐसा उदाहरण चाहता था जो दिखा सके कि एक बुनियादी पाठ्यक्रम के दौरान सीखे गए कौशल के साथ, पहले से ही एक वास्तविक प्रोग्राम लेना, यह समझना कि यह कैसे काम करता है, एक क्रैश को ट्रिगर करना और एक वास्तविक बग की पहचान करना संभव है।

यह रिपॉजिटरी बिल्कुल इसी तरह का उदाहरण है। यह एक जटिल भेद्यता खोजने के बारे में नहीं है। यह यह दिखाने के बारे में है कि शुरुआती लोग किसी छोटी, दोहराने योग्य और समझने योग्य वस्तु से शुरुआत कर सकते हैं, और फिर भी वास्तविक भेद्यता अनुसंधान कर सकते हैं।




🧭 "द पाथ दैट लीड्स टू योर फर्स्ट सीवीई" से संबंध

यह रिपॉजिटरी सीधे मेरे वार्ता "द पाथ दैट लीड्स टू योर फर्स्ट सीवीई" से संबंधित है, जहाँ मैं समझाता हूँ कि भेद्यता अनुसंधान की दुनिया में प्रवेश करने के कई तरीके हैं, और प्रत्येक व्यक्ति आमतौर पर अपनी रुचियों के आधार पर एक अलग रास्ता अपनाता है।

कुछ लोग स्रोत कोड ऑडिटिंग से शुरुआत करते हैं, कुछ रिवर्स इंजीनियरिंग से, कुछ वेब सुरक्षा से, और कुछ तकनीक अनुसंधान से। ये सभी रास्ते मान्य हैं, लेकिन महत्वपूर्ण बात यह समझना है कि प्रत्येक क्षेत्र में शुरुआती-अनुकूल प्रवेश बिंदु भी मौजूद हैं।

शुरुआती रास्तों के उदाहरणों में शामिल हैं:

  • स्रोत कोड ऑडिटिंग में, छोटे ओपन-सोर्स प्रोजेक्ट्स की समीक्षा करना।
  • रिवर्स इंजीनियरिंग में, सरल तर्क वाले पुराने अनुप्रयोगों के साथ काम करना।
  • वेब एप्लिकेशन सुरक्षा में, सरल वेब एप्लिकेशन या पुराने CMS प्लगइन्स का विश्लेषण करना।
  • तकनीक अनुसंधान में, उन प्रोटोकॉल या सॉफ्टवेयर का अध्ययन करना जो सुरक्षा को ध्यान में रखकर डिज़ाइन नहीं किए गए थे।
  • और कई अन्य समान शुरुआती बिंदु।

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

यह रिपॉजिटरी रिवर्स इंजीनियरिंग क्षेत्र में उन शुरुआती रास्तों में से एक का प्रतिनिधित्व करती है।

यहाँ प्रलेखित भेद्यता एक पुराने एप्लिकेशन का विश्लेषण करके, यह समझकर कि इसके फ़ाइल प्रारूप को कैसे पार्स किया जाता है, और एक प्रोग्रामिंग गलती की पहचान करके पाई गई थी जो क्रैश की ओर ले जाती है। प्रभाव स्वयं जटिल नहीं है, लेकिन प्रक्रिया वास्तविक, दोहराने योग्य और यह सीखने के लिए उपयोगी है कि भेद्यता अनुसंधान वास्तव में कैसे काम करता है।

यह उस प्रकार का उदाहरण है जिसका उपयोग मैं "द पाथ दैट लीड्स टू योर फर्स्ट सीवीई" समझाते समय करता हूँ, यह दिखाने के लिए कि रिवर्स इंजीनियरिंग शुरू से ही एक मान्य मार्ग है, और सरल लक्ष्यों से शुरुआत करना न केवल स्वीकार्य है, बल्कि अक्सर सीखने का सबसे अच्छा तरीका है।




🧱 पुराना सॉफ्टवेयर सीखने के लिए क्यों उपयुक्त है

जब आप शुरुआत कर रहे हैं, तो आधुनिक एप्लिकेशन अक्सर बहुत जटिल होते हैं। वे सुरक्षा उपायों, शमन तकनीकों और कोडबेस का उपयोग करते हैं जिन्हें बिना अधिक अनुभव के समझना कठिन है। पुराना सॉफ्टवेयर अलग है।

पुराने अनुप्रयोगों को आधुनिक सुरक्षा प्रथाओं को ध्यान में रखकर नहीं लिखा गया था। उनमें अक्सर सरल पार्सिंग बग, असुरक्षित मेमोरी ऑपरेशन और तर्क दोष होते हैं जिन्हें बुनियादी रिवर्सिंग कौशल के साथ समझा जा सकता है। यह उन्हें सीखने के लिए उपयुक्त बनाता है।

एक पुराने प्रोग्राम के साथ आप यह कर सकते हैं: बाइनरी को रिवर्स करें, फ़ाइल प्रारूप को समझें, एक क्रैश ट्रिगर करें, क्रैश का विश्लेषण करें, बग का पता लगाएं, मुद्दे का दस्तावेजीकरण करें और भेद्यता की रिपोर्ट करें। दूसरे शब्दों में, आप मूलभूत कौशल सीखते हैं जिनकी हर भेद्यता शोधकर्ता को आवश्यकता होती है।

यही इस उदाहरण के बारे में है।




🧪 यह उदाहरण क्यों महत्वपूर्ण है

यह उदाहरण महत्वपूर्ण है क्योंकि यह कुछ बहुत ही सरल दिखाता है:

  • शुरुआत करने के लिए आपको विशेषज्ञ होने की आवश्यकता नहीं है।
  • आपको OS कर्नेल या ब्राउज़र का शोषण करने की आवश्यकता नहीं है।
  • आप किसी छोटी चीज़ से शुरुआत कर सकते हैं, उसे समझ सकते हैं, दस्तावेजीकरण कर सकते हैं, और फिर भी वास्तविक परिणाम उत्पन्न कर सकते हैं।

यदि आपको रिवर्स इंजीनियरिंग पसंद है, तो आप शुरू से ही उस मार्ग का अनुसरण कर सकते हैं। इसमें महारत हासिल करने में वर्षों लग सकते हैं, लेकिन वास्तविक काम शुरू करने के लिए आपको वर्षों इंतजार करने की आवश्यकता नहीं है।




⚠️ भेद्यता के बारे में

यह भेद्यता (CVE-2025-70330) Easy Grade Pro 4.1 के फ़ाइल पार्सिंग तर्क को प्रभावित करती है जब मालिकाना .EGP ग्रेडबुक फ़ाइलें लोड की जाती हैं।

एप्लिकेशन फ़ाइल से निश्चित-स्थिति वाले फ़ील्ड पढ़कर और उन मानों को लोड की गई फ़ाइल बफर के अंदर ऑफसेट के रूप में उपयोग करके आंतरिक ग्रेडबुक संरचनाओं का पुनर्निर्माण करता है। इन ऑफसेट का उपयोग बाद में मेमोरी आकारों की गणना करने और गतिशील रूप से आवंटित बफर में डेटा कॉपी करने के लिए किया जाता है।

सामान्य परिस्थितियों में, पार्सिंग जारी रखने से पहले फ़ाइल कई संरचनात्मक जाँचों को पास करती है। हालाँकि, एक बार जब ये जाँचें सफल हो जाती हैं, तो पार्सर लोड किए गए बफर की सीमाओं के भीतर रहने की पुष्टि किए बिना फ़ाइल के अंदर संग्रहीत ऑफसेट मानों पर भरोसा करता है।

एक अन्यथा मान्य .EGP फ़ाइल के अंदर विशिष्ट बाइट्स को संशोधित करके, इन आंतरिक ऑफसेट गणनाओं को दूषित करना संभव है। जब पार्सर बाद में इन मानों का उपयोग करता है, तो यह मान्य फ़ाइल क्षेत्र के बाहर मेमोरी पढ़ने का प्रयास करता है, जिसके परिणामस्वरूप एक एक्सेस उल्लंघन और एप्लिकेशन क्रैश होता है।

यह स्थिति एक आउट-ऑफ-बाउंड रीड (CWE-125) से मेल खाती है, जो क्राफ्टेड फ़ाइल खोले जाने पर एक स्थानीय डिनायल-ऑफ-सर्विस की ओर ले जाती है।

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



🔬 तकनीकी विश्लेषण

.EGP फ़ाइल प्रारूप को ऑफसेट-आधारित दृष्टिकोण का उपयोग करके पार्स किया जाता है। फ़ाइल को अनुक्रमिक रूप से संसाधित करने के बजाय, पार्सर आंतरिक संरचनाओं को पढ़ता है जिसमें प्रारंभ और अंत ऑफसेट होते हैं जो बताते हैं कि फ़ाइल के अंदर विशिष्ट डेटा ब्लॉक कहाँ स्थित होने चाहिए।

इन ऑफसेट का उपयोग मेमोरी क्षेत्र के आकार की गणना करने और लोड की गई फ़ाइल बफर से नवीनतम आवंटित मेमोरी में डेटा कॉपी करने के लिए किया जाता है।

भेद्य तर्क को इस प्रकार संक्षेपित किया जा सकता है:

root@kitploit:~
size = offset_end - offset_start + 1
buffer = calloc(1, size)
memcpy(buffer, file_buffer[offset_start - base_offset], size)

एक बार जब फ़ाइल प्रारंभिक सत्यापन जाँचों को पास कर लेती है, तो पार्सर मान लेता है कि फ़ाइल में संग्रहीत ऑफसेट मान्य हैं। यह सुनिश्चित करने के लिए कोई सत्यापन नहीं किया जाता है कि गणना किया गया स्रोत पॉइंटर लोड की गई फ़ाइल बफर के अंदर रहे।

यदि ऑफसेट को नियंत्रित तरीके से हेरफेर किया जाता है, तो पार्सर मान्य क्षेत्र के बाहर मेमोरी पढ़ने का प्रयास कर सकता है, जिससे memcpy() ऑपरेशन के दौरान एक्सेस उल्लंघन होता है।




💥 केवल विशिष्ट दूषित फ़ाइलें ही एप्लिकेशन को क्रैश क्यों करती हैं

हर दूषित .EGP फ़ाइल क्रैश को ट्रिगर नहीं करती है।

पार्सर भेद्य कोड पथ तक पहुँचने से पहले कई संगति जाँचें करता है। यदि फ़ाइल संरचना बहुत अधिक दूषित है, तो एप्लिकेशन पार्सिंग को जल्दी रोक देता है और रिपोर्ट करता है कि ग्रेडबुक क्षतिग्रस्त है।

हालाँकि, कुछ संशोधन आंतरिक संरचनाओं को प्रारंभिक जाँचों को पास करने के लिए पर्याप्त सुसंगत रखते हैं, जबकि बाद में पार्सिंग प्रक्रिया में गलत ऑफसेट मान उत्पन्न करते हैं।

जब ऐसा होता है, तो पार्सर गहरी रूटीन तक पहुँचता है जहाँ इन ऑफसेट पर भरोसा किया जाता है और मेमोरी कॉपी ऑपरेशन में उपयोग किया जाता है, अंततः आउट-ऑफ-बाउंड रीड का कारण बनता है।




🧾 प्रूफ ऑफ कॉन्सेप्ट

क्रैश को एक मान्य .EGP फ़ाइल को संशोधित करके और एक विशिष्ट ऑफसेट पर नियंत्रित डेटा सम्मिलित करके ट्रिगर किया जा सकता है।

प्रूफ ऑफ कॉन्सेप्ट इस प्रकार काम करता है:

  1. Easy Grade Pro द्वारा उत्पन्न एक मान्य ग्रेडबुक फ़ाइल लेना।
  2. फ़ाइल को कच्चे बाइनरी डेटा के रूप में पढ़ना।
  3. एक निश्चित ऑफसेट पर बाइट्स का एक अनुक्रम सम्मिलित करना।
  4. संशोधित फ़ाइल को सहेजना।
  5. क्राफ्टेड फ़ाइल को एप्लिकेशन में खोलना।

PoC में उपयोग किए गए उदाहरण पैरामीटर:

  • इंजेक्शन ऑफसेट: 548
  • पेलोड आकार: 21 बाइट्स
  • पेलोड मान: 0x41 ("A")

यह संशोधन फ़ाइल को प्रारंभिक जाँचों को पास करने के लिए पर्याप्त रूप से संरचनात्मक रूप से मान्य रखता है, लेकिन बाद में पार्सर द्वारा उपयोग की जाने वाली आंतरिक ऑफसेट गणनाओं को दूषित करता है, अंततः एप्लिकेशन क्रैश का कारण बनता है।




💣 क्रैश व्यवहार

जब दूषित फ़ाइल को डीबगर के तहत खोला जाता है, तो एप्लिकेशन मेमोरी कॉपी ऑपरेशन के दौरान क्रैश हो जाता है।

देखा गया अपवाद एक अमान्य मेमोरी रीड के कारण होने वाला एक्सेस उल्लंघन है।

डीबगिंग के दौरान, memcpy() द्वारा उपयोग किया गया अमान्य पॉइंटर पार्स की गई फ़ाइल संरचनाओं से प्राप्त ऑफसेट गणनाओं से उत्पन्न होता है। जब ये ऑफसेट लोड की गई फ़ाइल बफर के बाहर मेमोरी को संदर्भित करते हैं, तो स्रोत पॉइंटर एक अनमैप्ड पते की ओर इशारा करता है, जिससे क्रैश होता है।

यह पुष्टि करता है कि भेद्यता फ़ाइल पार्सिंग के दौरान सीमा सत्यापन की कमी के कारण होती है।




📌 नोट्स

यह भेद्यता एक एंड-ऑफ-लाइफ उत्पाद को प्रभावित करती है जिसे विक्रेता द्वारा अब बनाए नहीं रखा जाता है।

मुद्दा शैक्षिक और अनुसंधान उद्देश्यों के लिए प्रलेखित किया गया है, और शुरुआती लोगों को एक ठोस उदाहरण देने के लिए कि सॉफ्टवेयर का चरण दर चरण विश्लेषण कैसे किया जा सकता है ताकि यह समझा जा सके कि बग कैसे प्रकट होते हैं और वास्तविक भेद्यताएँ कैसे पाई जाती हैं।