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
CVE-2022-22965 — Análisis técnico en profundidad de CVE-2022-22965 (Spring4Shell) con configuración del entorno, recorrido de depuración y desglose de la cadena de explotación para la práctica de laboratorio educativo. | Kitploit
Herramientas/GitHubGitHub/khidottrivi/cve-2022-22965
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebAprendizaje y EducaciónLabs y Práctica
GitHubkhidottrivi/cve-2022-22965

CVE-2022-22965

Análisis técnico en profundidad de CVE-2022-22965 (Spring4Shell) con configuración del entorno, recorrido de depuración y desglose de la cadena de explotación para la práctica de laboratorio educativo.

Ver Repositorio
411hace 4 añosAú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

Análisis de CVE-2022-22965 (Spring4Shell)

Descripción de la vulnerabilidad

Spring4Shell es el nombre de un CVE que existe en Spring Core del Spring Framework.

Con una puntuación CVSS 3.x de 9.8, la vulnerabilidad está clasificada en el nivel de riesgo más alto (crítico). Esta vulnerabilidad permite a un atacante ejecutar código de explotación de forma remota y controlar el servidor que contiene la vulnerabilidad.

Junto con la popularidad de Spring Core en Internet y la gravedad del impacto de Spring4Shell, los expertos consideran que esta vulnerabilidad tiene un impacto no menor al de Log4shell.

Alcance de la afectación

Spring4Shell no afecta a todas las aplicaciones web que utilizan Spring Framework en Internet, sino que requiere que la aplicación web cumpla con los siguientes factores:

  • La aplicación utiliza Spring Framework versión < 5.2, 5.2.0 – 5.2.19 o 5.3.0 - 5.3.17
  • La aplicación utiliza una de las dos dependencias Spring-webmvc o Spring-webflux
  • La aplicación utiliza Java con versión de JDK >= 9
  • La aplicación está empaquetada como un archivo web Java tradicional (archivo .war) y se despliega en Tomcat (no se ha detectado la vulnerabilidad en aplicaciones que se ejecutan con Springboot)

Configuración del entorno

El entorno que configuro tendrá los siguientes parámetros:

  • Spring Framework 5.1.0
  • Dependencia Spring-webmvc 5.1.0
  • JDK 11.0.13 (uso Kali 2021.4a en una máquina virtual y esta versión de Java es la que viene preinstalada)
  • Apache Tomcat 9.0.45

Creación del entorno, proyecto con la vulnerabilidad y configuración de depuración con Intellij

  1. Instalación de Apache Tomcat

    Como se mencionó anteriormente, uso Kali 2021.4a y Apache Tomcat 9.0.45. Si no sabes cómo instalar Apache Tomcat y deseas hacerlo en Kali Linux, puedes consultar este enlace.

    Nota: Reemplaza el enlace https://mirror.kiu.ac.ug/apache/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz por https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz

  2. Elección del IDE

    Necesitamos un IDE para codificar el proyecto, empaquetarlo como archivo .war y, algo muy importante, depurar. Yo uso Intellij, pero puedes usar Eclipse, Netbeans, etc., siempre que el IDE soporte Java.

  3. Creación de un proyecto simple que contenga la vulnerabilidad

    Mi proyecto es muy simple y consta de:

    • un modelo HelloWorld.java

      Untitled

    • un controlador HelloWorldController.java

      Untitled

    • una vista hello.jsp

      Untitled

  4. Construcción del archivo .war

    Para empaquetar el proyecto, haz lo siguiente: Build -> Build Artifacts -> helloworld:war -> Build.

    Espera a que el proceso de Build se complete con éxito; en ese momento, el proyecto tendrá una carpeta adicional llamada out. Ve a ./out/artifacts/your_war_name/ y verás un archivo your_war_name.war; este archivo .war es el proyecto web compilado y empaquetado, y se puede usar para desplegarlo en servlets Java como Apache Tomcat.

    Si Build Artifacts aparece atenuado (no se puede construir), significa que aún no se ha configurado Build Artifacts para este proyecto. Ve a: File -> Project Structure -> Artifacts -> Elimina todos los artifacts existentes -> Add (signo +) -> Web Application: Exploded -> From Modules... -> OK (finaliza la creación de Exploded) > Add (signo +) -> Web Application: Archive -> For 'helloworld:war exploded' -> OK. Luego repite el proceso de Build Artifacts.

  5. Despliegue y configuración de depuración

    • Despliegue

      Para desplegar un archivo .war en Apache Tomcat, simplemente copia el archivo .war en la carpeta /webapps dentro del directorio de Apache Tomcat (por ejemplo, en mi caso, copio el archivo helloworld.war (lo renombré para mayor comodidad) en /opt/tomcat/apache-tomcat-9.0.45/webapps/). Luego, inicia el servidor Tomcat de dos maneras (en Linux):

      • /opt/tomcat/apache-tomcat-9.0.45/bin/catalina.sh start (la aplicación se ejecutará con los permisos del usuario que ejecuta el comando, en mi caso root)
      • sudo service tomcat start (la aplicación normalmente se ejecutará con permisos de tomcat, dependiendo de cómo configures el servicio al instalar Apache Tomcat)

      Una vez desplegado, accede a http://localhost:8080/helloworld

    • Configuración de depuración

      Para configurar la depuración remota de Tomcat, haz lo siguiente:

      1. En el servidor:

        • Abre el archivo catalina.sh y cambia el valor de localhost por la IP de la máquina virtual en el parámetro JPDA_ADDRESS

          Untitled

        • Reinicia el servidor Tomcat con: /opt/tomcat/apache-tomcat-9.0.45/bin/catalina.sh jpda start. En este momento, además de abrir el puerto 8080 para el servidor HTTP, Tomcat abrirá el puerto 8000 para que podamos conectarnos y depurar.

        Nota: En esta parte de la depuración, yo ejecuto Intellij en Windows 10 y Tomcat en una máquina virtual Kali, por lo que necesito cambiar JPDA_ADDRESS. Si configuras tanto Intellij como Tomcat en la misma máquina, no es necesario cambiarlo.

      2. En Intellij:

        • Ve a Run -> Edit Configurations... -> Add (signo +) -> Remote JVM Debug

        • Pon un nombre -> modifica Host y Port para que coincidan con la IP y el puerto que configuraste en catalina.sh -> OK -> Shift + F9 (inicia la depuración)

          Untitled

Análisis detallado

Primero, analizaré el proyecto que estoy usando para depurar. Como mencioné anteriormente, este proyecto es muy simple y consta de:

  • Un modelo HelloWorld.java, donde el objeto HelloWorld tiene dos atributos: message (string) y person (string), junto con sus respectivos setters y getters (debido a esta estructura simple, este objeto se llama Plain Old Java Object - POJO). En el proyecto debe existir una clase POJO: esta es una condición necesaria para poder explotar la vulnerabilidad Spring4Shell.
  • Un controlador HelloWorldController.java. En esta clase hay un método helloPost que recibe como parámetros de entrada un objeto helloWorld (HelloWorld) y un modelo (Model). Dentro del método helloPost se agregan atributos al modelo a partir de los valores de las propiedades de helloWorld (person y message). Esta es la segunda condición para explotar Spring4Shell: debe haber un controlador que reciba como entrada un objeto POJO.
  • Una vista hello.jsp. En este archivo hello.jsp se invocan los atributos del modelo (enviados desde el controlador HelloWorldController.java) y se muestran al usuario.
Descargar herramienta