Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-38473-Nuclei-Template — Plantilla de Nuclei para detectar servidores Apache vulnerables a CVE-2024-38473 | Kitploit
Herramientas/GitHubGitHub/juanschallibaum/cve-2024-38473-nuclei-template
Escáneres de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebFuzzingPruebas de PenetraciónMala Configuración
GitHubjuanschallibaum/cve-2024-38473-nuclei-template

CVE-2024-38473-Nuclei-Template

Plantilla de Nuclei para detectar servidores Apache vulnerables a CVE-2024-38473

Ver Repositorio
30710hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Plantilla Nuclei para CVE-2024-38473

image

Descripción

Plantilla de Nuclei diseñada para detectar servidores Apache vulnerables a CVE-2024-38473. Primero identifica servidores que ejecutan Apache < 2.4.60 con la configuración predeterminada de PHP-FPM. Luego, realiza fuzzing para encontrar posibles archivos PHP protegidos por ACLs que podrían ser omitidos debido a esta vulnerabilidad.

Instalación

  1. Para usar esta plantilla de Nuclei, necesitas clonar el repositorio. Puedes hacerlo ejecutando el siguiente comando:

    git clone https://github.com/juanschallibaum/CVE-2024-38473-Nuclei-Template
    
  2. Navega al directorio del repositorio clonado:

    cd CVE-2024-38473-Nuclei-Template
    

Uso

  • Ejecutar la plantilla de Nuclei en un solo host:

    nuclei -t CVE-2024-38473.yaml -u http://example.com
    
  • Ejecutar la plantilla de Nuclei contra una lista de hosts:

    nuclei -t CVE-2024-38473.yaml -l hosts.txt
    
  • Ejecutar la plantilla de Nuclei en un solo host especificando un archivo .html o .php válido:

    nuclei -t CVE-2024-38473.yaml -u http://example.com/valid.php
    

    Ejecutar Nuclei de esta manera puede producir una mayor tasa de detección. También puedes incluir URLs en este formato dentro del archivo de hosts para ejecutar la plantilla contra esa lista.

Entorno de Pruebas

Para probar fácilmente la vulnerabilidad CVE-2024-38473, puedes configurar un entorno vulnerable usando Docker. Sigue estos pasos para verificar rápidamente la efectividad de la plantilla de Nuclei:

  1. Asegúrate de que el demonio de Docker esté en ejecución: Verifica que el demonio de Docker esté corriendo en tu sistema. Puedes iniciarlo con el siguiente comando si aún no lo está:

    sudo systemctl start docker
    
  2. Ejecutar el contenedor Docker: Dentro del directorio del repositorio, usa el siguiente comando Docker para iniciar un contenedor con una configuración vulnerable de Apache y PHP-FPM:

    docker run -p 8787:80 -v "$(pwd)/test-env-webroot:/app" webdevops/php-apache:7.1
    
  3. Probar la vulnerabilidad:

    • Manualmente: Abre tu navegador web y navega a http://localhost:8787 para interactuar con el servidor Apache que se ejecuta en el contenedor Docker. Accede a http://localhost:8787/info.php para probar la vulnerabilidad. Este archivo está protegido por una ACL y, si la omisión de la ACL es exitosa, verás la salida de phpinfo():

      2024-08-23 00-28-42

    • Usando la plantilla de Nuclei: Ejecuta el siguiente comando de Nuclei para probar el servidor con la plantilla:

      nuclei -t CVE-2024-38473.yaml -u http://localhost:8787
      

Contexto

El 8 de agosto de 2024, el investigador de seguridad Orange Tsai presentó una charla en Black Hat USA 2024 titulada: Confusion Attacks: Exploiting Hidden Semantic Ambiguity in Apache HTTP Server!. En esta presentación, reportó múltiples vulnerabilidades que afectan a Apache HTTP Server. Explicó que Apache tiene una arquitectura altamente modular, compuesta por cientos de módulos, cada uno realizando su función mientras lee y escribe en una estructura compartida llamada request_rec, que consta de casi 100 campos.

La causa raíz de las vulnerabilidades reportadas por el investigador de seguridad radica en la inconsistencia en cómo los diferentes módulos de Apache tratan los diversos campos de la estructura compartida. Por ejemplo, mod_authz_core trata el campo r->filename como un archivo, mientras que mod_proxy lo trata como una URL, lo que genera discrepancias que resultan en una amplia gama de vulnerabilidades.

Detalles de la Vulnerabilidad

En su presentación, Orange Tsai define un tipo de ataque llamado "Filename Confusion". Aunque este ataque tiene una superficie de ataque variada, CVE-2024-38473, que cubrimos en esta plantilla, se refiere a cómo podemos aplicar el ataque "Filename Confusion" para omitir las ACL de Apache y obtener acceso a archivos restringidos.

El problema surge cuando el módulo de autenticación de Apache, mod_authz_core, trata el atributo r->filename como un archivo, mientras que mod_proxy lo trata como una URL. Debido a esto, las instalaciones de Apache con PHP-FPM en su configuración predeterminada se ven afectadas por esta vulnerabilidad. Imagina que un servidor que ejecuta Apache y PHP-FPM tiene una ACL configurada como la siguiente para proteger el acceso al archivo admin.php con credenciales:

<Files "admin.php">
    AuthType Basic 
    AuthName "Admin Panel"
    AuthUserFile "/etc/apache2/.htpasswd"
    Require valid-user
</Files>

Debido a la vulnerabilidad, es posible omitir ACL como la anterior que implican proteger un archivo individual. De hecho, esto se puede hacer tan fácilmente como enviando la siguiente solicitud: http://server/admin.php%3fooo.php.

Para entender esto en profundidad, es importante considerar que cuando Apache procesa una solicitud como la anterior, el módulo mod_authz_core lee el valor admin.php?fooo.php del campo r->filename de la estructura compartida. Trata este valor como el nombre del archivo solicitado y, al compararlo con la ACL, no coincide porque admin.php?fooo.php es diferente de admin.php.

Luego, dado que admin.php?fooo.php termina en .php, la solicitud es manejada por PHP-FPM. PHP-FPM elimina todo lo que sigue al ? en el nombre de archivo recibido de Apache antes de procesarlo, tratándolo como una URL en lugar de un archivo. Como resultado, PHP-FPM procesará admin.php directamente. Debido a que la verificación de ACL se superó anteriormente, el atacante puede acceder a admin.php sin autenticación.

Plantilla de Nuclei

La plantilla de Nuclei actual no solo tiene como objetivo descubrir archivos protegidos por fuerza bruta, sino que también incluye lógica para identificar cuándo un servidor tiene una configuración vulnerable de Apache < 2.4.60 con PHP-FPM, incluso si no se detectan casos de archivos protegidos por ACL. En el flujo básico, primero intenta identificar si el servidor tiene una configuración vulnerable y, luego, si es positivo, intenta identificar archivos comunes que puedan estar protegidos por ACL.

La idea detrás de la detección de configuraciones vulnerables con Apache < 2.4.60 y PHP-FPM se basa en dos premisas básicas:

  • En una configuración vulnerable, si file.php existe en el servidor, entonces la solicitud a http://server/file.php%3fooo.php devolvería el mismo código de estado 200 y la misma longitud de cuerpo que la solicitud a http://server/file.php (porque después de que PHP-FPM elimina %3fooo.php, el archivo solicitado sería el mismo).

  • En una configuración vulnerable, si file.html existe en el servidor, entonces la solicitud a http://server/file.html%3fooo.php devolvería 403 Acceso Denegado. Esto se debe a que PHP-FPM intentaría cargar un archivo con extensión .html en lugar de .php, lo cual no está permitido por defecto.

Flujo Detallado de la Plantilla

El flujo de la plantilla consta de 7 grupos de solicitudes. Deben ejecutarse en orden y deben cumplir las respectivas condiciones de coincidencia para pasar al siguiente grupo de solicitudes. Esto ayuda a minimizar la cantidad de solicitudes enviadas en vano cuando ya se sabe que las condiciones no se cumplen.

Solicitud #1

Descargar herramienta