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
Herramientas/GitHubGitHub/blipzip/cve-2022-31692
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubblipzip/cve-2022-31692

cve-2022-31692

Un proyecto que demuestra una aplicación vulnerable a la omisión de autorización de Spring Security CVE-2022-31692

Ver Repositorio
356hace 3 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

Demo de CVE-2022-31692

Overview

Una aplicación Spring Boot simple que demuestra una configuración vulnerable a CVE-2022-31692.

Esta vulnerabilidad puede llamar la atención por su severidad - tiene una puntuación base CVSS 3.x de 9.8, ya que permite la omisión de autenticación. El propósito de este proyecto es demostrar las condiciones descritas en el aviso, que hacen que la vulnerabilidad sea aplicable.

  • La aplicación espera que Spring Security aplique seguridad a los tipos de dispatcher forward e include.
  • La aplicación utiliza el AuthorizationFilter ya sea manualmente o mediante el método authorizeHttpRequests().
  • La aplicación configura el FilterChainProxy para que se aplique a solicitudes forward y/o include (por ejemplo, spring.security.filter.dispatcher-types = request, error, async, forward, include).
  • La aplicación puede hacer forward o include de la solicitud a un endpoint protegido con mayores privilegios.
  • La aplicación configura Spring Security para que se aplique a todos los tipos de dispatcher mediante authorizeHttpRequests().shouldFilterAllDispatcherTypes(true)

Como referencia, estoy bastante seguro de que este es el commit que aborda la vulnerabilidad.

Demostración

La aplicación tiene tres URLs:

  1. / La página de inicio
  2. /admin Una página de administración, que requiere que el usuario proporcione autenticación Basic (credenciales "user"/"pass") y se le asigne el rol ROLE_ADMIN
  3. /forward Un forward del lado del servidor a la página de administración

Los controles de acceso se especifican mediante authorizeHttpRequests() en la clase SecurityConfig.

root@kitploit:~
.authorizeHttpRequests((authz) -> authz
	.antMatchers("/").permitAll()
	.antMatchers("/forward").permitAll()
	.antMatchers("/admin").hasAuthority("ROLE_ADMIN")
	.shouldFilterAllDispatcherTypes(true)
)

Comportamientos esperados

  1. El usuario accede a / y no está autenticado (gracias a permitAll())

  2. El usuario accede a /admin. No proporciona autenticación, y la solicitud es rechazada (401 No autorizado).

  3. El usuario accede a /admin. Proporciona autenticación válida, pero la solicitud sigue siendo rechazada (403 No autorizado) porque no tiene el rol requerido .hasAuthority("ROLE_ADMIN").

  4. El usuario accede a /forward. Su solicitud pasa a través de la cadena de filtros de seguridad para GET /forward, siendo considerada válida (gracias a permitAll()). El controlador procesa la solicitud y devuelve forward:/admin al Dispatcher. Según lo indicado por los ajustes spring.security.filter.dispatcher-types y .shouldFilterAllDispatcherTypes(true), este es un tipo FORWARD, por lo que debería pasar por la cadena de filtros nuevamente. Este segundo paso a través del filtro hace que la solicitud sea rechazada (nuevamente, gracias a hasAuthority("ROLE_ADMIN")).

Comportamiento real

El usuario accede a /forward, la solicitud pasa por la cadena de filtros una vez y se considera válida. El forward es procesado, pero en lugar de pasar nuevamente por la cadena, simplemente se considera válido, y la página de administración es devuelta.

Descargar herramienta