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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
spring4shell-local-verification-lab — Spring Framework CVE-2022-22965: proyecto de verificación de condiciones de impacto local, reparación mediante actualización de versión y repetición de pruebas | Kitploit
Herramientas/GitHubGitHub/meng-security/spring4shell-local-verification-lab
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónSeguridad WebAprendizaje y EducaciónLabs y Práctica
GitHubmeng-security/spring4shell-local-verification-lab

spring4shell-local-verification-lab

Spring Framework CVE-2022-22965: proyecto de verificación de condiciones de impacto local, reparación mediante actualización de versión y repetición de pruebas

Ver Repositorio
8hace 2 mesesAú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

Proyecto de verificación local de condiciones de impacto, corrección y reprueba de Spring4Shell

Introducción del proyecto

Este proyecto se utiliza para aprender y verificar las condiciones de impacto, el comportamiento de riesgo, el método de corrección y el flujo de reprueba posterior de la vulnerabilidad CVE-2022-22965 de Spring Framework, también conocida como Spring4Shell.

El proyecto se completó en un entorno local autorizado de construcción personal. El enfoque del proyecto no es atacar objetivos reales, sino confirmar una a una las condiciones de impacto relacionadas con la vulnerabilidad mediante la creación de entornos de prueba Spring MVC antes y después de la corrección, y observar de forma segura y controlada, mediante solo lectura, las diferencias en las rutas de propiedades internas del enlace de datos de Spring antes y después de la actualización de versión.

Este proyecto completó los siguientes procesos:

  • Preparación del entorno JDK, Maven y Apache Tomcat
  • Creación del proyecto WAR Spring MVC
  • Verificación de referencia de funcionalidad normal
  • Confirmación de las condiciones de impacto de la vulnerabilidad
  • Diagnóstico de solo lectura de rutas de propiedades internas
  • Análisis de la causa de la vulnerabilidad
  • Actualización de versión de Spring Framework
  • Reprueba de seguridad posterior a la corrección
  • Reprueba de funcionalidad normal posterior a la corrección
  • Organización del informe de pruebas y la evidencia de capturas de pantalla

Declaración de seguridad

Este proyecto se utiliza únicamente en entornos locales autoconstruidos personales o en entornos de pruebas de seguridad expresamente autorizados.

El proyecto no escanea, sondea ni explota ningún sitio web público, servidor o sistema empresarial de terceros, y no contiene datos reales de usuarios ni datos empresariales reales.

Durante las pruebas no se realizaron las siguientes acciones:

  • No se escribió WebShell
  • No se ejecutaron comandos del sistema
  • No se modificó la configuración de Tomcat
  • No se estableció una reverse shell
  • No se realizó control de persistencia
  • No se afectó a ningún sistema externo

Se prohíbe utilizar los métodos de prueba de este proyecto contra cualquier objetivo no autorizado.

Contexto de la vulnerabilidad

CVE-2022-22965, comúnmente conocida como Spring4Shell, es una vulnerabilidad de ejecución remota de código en Spring Framework relacionada con el mecanismo de enlace de datos de parámetros de solicitud.

Spring MVC admite el enlace automático de los parámetros de solicitud HTTP a las propiedades de objetos Java. Por ejemplo, este proyecto recibe los parámetros de nombre y correo electrónico mediante:

@ModelAttribute("profile") UserProfile profile

En condiciones normales, los parámetros de solicitud name y email se enlazan al objeto UserProfile según el nombre de la propiedad.

En las versiones afectadas, las restricciones de acceso a algunas rutas de propiedades internas no eran lo suficientemente estrictas. Cuando se utiliza JDK 9 o superior y se cumplen condiciones específicas de contenedor Servlet, forma de despliegue y enlace de datos, los parámetros de solicitud externos podrían continuar, a través de objetos de negocio normales, accediendo a objetos internos relacionados con la Class de Java, los módulos, los cargadores de clases o el contenedor.

En entornos explotables específicos, un atacante podría modificar la configuración del servidor o escribir archivos en el servidor, generando así un riesgo de ejecución remota de código.

Este proyecto no ejecuta la explotación remota completa, sino que utiliza la siguiente ruta de propiedades para realizar un diagnóstico diferencial seguro y de solo lectura:

class.module.name

Objetivos del proyecto

  1. Comprender el proceso básico de enlace de datos de parámetros de solicitud en Spring MVC.
  2. Crear un proyecto de prueba WAR Spring MVC local.
  3. Completar la verificación de referencia de la funcionalidad de negocio normal.
  4. Confirmar las condiciones de impacto como Spring Framework, JDK, Tomcat, despliegue WAR y punto de entrada de enlace de datos.
  5. Observar el comportamiento de acceso a las rutas de propiedades internas mediante solo lectura.
  6. Analizar las causas principales de la vulnerabilidad.
  7. Actualizar Spring Framework a la versión corregida.
  8. Realizar la reprueba posterior a la corrección con los mismos métodos.
  9. Confirmar que la actualización de versión no afectó la funcionalidad de negocio normal.
  10. Organizar el código fuente del proyecto, el informe de pruebas y la evidencia de capturas de pantalla.

Entorno experimental

Este proyecto se completó en un entorno experimental aislado de VMware local personal.

  • Host: Windows 11
  • Máquina objetivo: Máquina virtual Windows 10
  • Software de virtualización: VMware Workstation
  • Entorno Java: Eclipse Temurin JDK 11.0.31
  • Herramienta de construcción del proyecto: Apache Maven 3.9.16
  • Contenedor Servlet: Apache Tomcat 9.0.60
  • Versión de Spring Framework antes de la corrección: 5.3.17
  • Versión de Spring Framework después de la corrección: 5.3.18
  • Framework web: Spring MVC
  • Método de despliegue del proyecto: despliegue tradicional de paquete WAR
  • Dirección de prueba: 127.0.0.1

Datos de prueba de funcionalidad normal:

  • Nombre: Alice
  • Correo electrónico: [email protected]

Ruta de propiedad de diagnóstico de seguridad:

class.module.name

Estructura del proyecto

spring4shell-local-verification-lab/

  • README.md: introducción del proyecto, enfoque de prueba, resultados de verificación y notas de corrección
  • docs/: informe de verificación local de condiciones de impacto, corrección y reprueba de Spring4Shell
  • images/: capturas de pantalla del entorno del proyecto, del proceso de prueba y de la reprueba
  • vulnerable-demo/: proyecto previo a la corrección que utiliza Spring Framework 5.3.17
  • fixed-demo/: proyecto posterior a la corrección que utiliza Spring Framework 5.3.18
  • notes/: notas de estudio y registros del proceso

Estructura principal del código fuente:

  • config/: clases de configuración de Spring MVC y clases de inicialización de la aplicación
  • controller/: controlador de procesamiento de formularios y de diagnóstico de rutas de propiedades
  • model/: clase UserProfile utilizada para recibir los parámetros de nombre y correo electrónico
  • WEB-INF/views/: páginas JSP de inicio, de resultado de envío y de resultado de diagnóstico

Descripción de los proyectos de prueba

Este proyecto creó dos aplicaciones Spring MVC, una previa y una posterior a la corrección.

Proyecto previo a la corrección

Directorio del proyecto:

vulnerable-demo

Versión utilizada:

Spring Framework 5.3.17

Archivo WAR generado:

spring4shell-vulnerable-demo.war

Dirección de acceso:

http://127.0.0.1:8080/spring4shell-vulnerable-demo/

Página de diagnóstico:

http://127.0.0.1:8080/spring4shell-vulnerable-demo/binding-probe

Proyecto posterior a la corrección

Directorio del proyecto:

fixed-demo

Versión utilizada:

Spring Framework 5.3.18

Archivo WAR generado:

spring4shell-fixed-demo.war

Dirección de acceso:

http://127.0.0.1:8080/spring4shell-fixed-demo/

Página de diagnóstico:

http://127.0.0.1:8080/spring4shell-fixed-demo/binding-probe

Descripción de la funcionalidad normal

El proyecto de prueba proporciona un formulario simple de perfil de usuario que incluye:

  • Campo de entrada de nombre
  • Campo de entrada de correo electrónico
  • Botón de envío de datos

El controlador recibe los parámetros de solicitud mediante:

@ModelAttribute("profile") UserProfile profile

Cuando el usuario envía el nombre y el correo electrónico, Spring MVC enlaza automáticamente los parámetros name y email al objeto UserProfile.

La página de resultados lee el objeto enlazado y muestra el nombre y el correo electrónico enviados por el usuario.

Descargar herramienta