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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
log4shell-example — इस परियोजना का उद्देश्य एक spring-boot सेटअप में log4j cve-2021-44228 शोषण भेद्यता प्रदर्शित करना और इसे कैसे ठीक करें यह दिखाना है। | Kitploit
उपकरण/GitHubGitHub/chilit-nl/log4shell-example
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब सुरक्षालर्निंग और शिक्षालैब और अभ्यास
GitHubchilit-nl/log4shell-example

log4shell-example

इस परियोजना का उद्देश्य एक spring-boot सेटअप में log4j cve-2021-44228 शोषण भेद्यता प्रदर्शित करना और इसे कैसे ठीक करें यह दिखाना है।

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

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

सभी देखें →

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

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

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

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

Log4Shell शोषण परीक्षण

इस परियोजना का लक्ष्य spring-boot सेटअप में log4j cve-2021-44228 शोषण भेद्यता को प्रदर्शित करना और इसे कैसे ठीक किया जाए, यह दिखाना है।

इस परियोजना में तीन उपमॉड्यूल हैं। इनमें से एक में असुरक्षित कोड है, अन्य दो पैच किए गए हैं।

इस परियोजना का उपयोग कैसे करें

दोनों मॉड्यूल में परीक्षण चलाने के लिए परियोजना के रूट में ./mvnw clean test चलाएँ। log4shell-example-unpatched में, आप बहुत सारे अपवाद देखेंगे (परीक्षण फिर भी पास होगा, क्योंकि यह अपेक्षित है), क्योंकि इसे उस सर्वर से सही प्रतिक्रिया नहीं मिलती जिससे यह कनेक्ट होने का प्रयास करता है।

मैं कब असुरक्षित हूँ?

आपका एप्लिकेशन असुरक्षित है यदि आपने डिफ़ॉल्ट लॉगर को ओवरराइड किया है, ताकि वह log4j2 कार्यान्वयन का उपयोग करे और आपने उपयोग किए जा रहे log4j2 के संस्करण को ओवरराइड नहीं किया है। pom कुछ इस तरह दिखेगा:```xml org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-logging

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
आप देख सकते हैं कि `log4shell-example-unpatched` में परीक्षण चलाकर आपके लॉग इनवोकेशन अब कमजोर हैं। यह परीक्षण तब सफल होता है जब लॉग इनवोकेशन कमजोर हों।

### अपने स्वयं के एप्लिकेशन की कमजोरी देखने के लिए स्प्रिंग इंटीग्रेशन परीक्षण का उपयोग करना

#### 1. अपने प्रोजेक्ट में `Log4ShellTest` जोड़ें

`log4shell-example-patched-version` से अपने प्रोजेक्ट में `Log4ShellTest` जोड़ें:```java
import lombok.extern.log4j.Log4j2;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;

@SpringBootTest
@Import(Log4ShellTest.Log4ShellConfig.class)
public class Log4ShellTest {

    @Autowired
    private List<Log4ShellService> servicesToTest;

    @Test
    public void testVulnerabilityPatched() throws Exception {

        CountDownLatch waitLatch = new CountDownLatch(1);
        AtomicInteger connectionAttemptCounter = new AtomicInteger();
        Thread listener = new Thread(() -> {
            try {
                ServerSocket socket = new ServerSocket(22345);
                while(true) {
                    waitLatch.countDown();
                    Socket connection = socket.accept();
                    connectionAttemptCounter.getAndIncrement();
                    connection.close();
                }
            }
            catch(IOException ex) {
                throw new IllegalStateException(ex);
            }
        });
        listener.start();
        waitLatch.await();

        servicesToTest.forEach(service -> service.testLog("${jndi:ldap://127.0.0.1:22345}"));

        Assertions.assertEquals(0, connectionAttemptCounter.get());
        // If you're not using lombok, change the 6 to 2
        Assertions.assertEquals(6, servicesToTest.size());

        listener.interrupt();

    }

    @Configuration
    @ComponentScan
    public static class Log4ShellConfig {

    }

    public interface Log4ShellService {
        void testLog(String arg);
    }

    @Component
    public static class Service1 implements Log4ShellService {

        private static final Logger logger = LogManager.getLogger("Test");

        @Override
        public void testLog(String arg) {
            logger.info("Test: " + arg);
        }
    }

    @Component
    public static class Service2 implements Log4ShellService {

        private static final Logger logger = LogManager.getLogger("Test");

        @Override
        public void testLog(String arg) {
            logger.info("Test: {}", arg);
        }
    }

    // Remove this class if you're not using lombok
    @Component
    @Slf4j
    public static class Service3 implements Log4ShellService {

        @Override
        public void testLog(String arg) {
            log.info("Test: {}", arg);
        }
    }

    // Remove this class if you're not using lombok
    @Component
    @Slf4j
    public static class Service4 implements Log4ShellService {

        @Override
        public void testLog(String arg) {
            log.info("Test: " + arg);
        }
    }

    // Remove this class if you're not using lombok
    @Component
    @Log4j2
    public static class Service5 implements Log4ShellService {

        @Override
        public void testLog(String arg) {
            log.info("Test: {}", arg);
        }
    }

    // Remove this class if you're not using lombok
    @Component
    @Log4j2
    public static class Service6 implements Log4ShellService {

        @Override
        public void testLog(String arg) {
            log.info("Test: " + arg);
        }
    }

}

2. पुष्टि करें कि यह परीक्षण विफल हो रहा है

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