[CVE-2020-5405] camino primavera-nube-config-servidor a través de la vulnerabilidad Análisis

Introducción de producto 0x00

Primavera Nube Config es componentes Spirng nube para la gestión de configuración distribuida, dividido Config-Servery Config-Clientdos roles. En donde Config-Server puede ser configurado para adquirir una variedad de fuentes dispuestos, como se ve desde Git, SVN, similar a la nativa.
 
0x01 vulnerabilidad Perfil
En el depósito de configuración para el siguiente caso local nativo, un atacante puede obtener archivos arbitrarios con el sufijo en la configuración del servidor-servidor
 
0x02 falla afecta a la versión
2.2.x antes de 2.2.2
2.1.x antes de 2.1.7
 
0x03 calificación vulnerabilidad
De alto riesgo (Clasificación oficial)
 
0x04 Análisis de vulnerabilidad
un entorno de base para construir, https://github.com/spring-cloud/spring-cloud-config/releases/tag/v2.1.1.RELEASE , tirando de extraer el paquete postal, introducido en la idea
Echa un vistazo a la confirmación, la posición oficial de análisis de la vulnerabilidad

 

Donde el primer cuadro rojo, https://github.com/spring-cloud/spring-cloud-config/commit/651f458919c40ef9a5e93e7d76bf98575910fad0

Deleted ResolveName y código reolveLabel, el código (_) se sustituye con / y, la causa más probable de la vulnerabilidad

 

 

En el código de prueba a continuación algunas adiciones y cambios, que funcionan findOne en el interior de la carga útil una vez que el código CVE-2019-3799 prueba, códigos de prueba han sido adiciones y cambios se deben hacer para cambiar esta laguna una vez, el foco de las instrucciones utilizadas aquí es la configuración de repositorio local nativa

 

De acuerdo con el análisis anterior, intenta configurar sping-nube-config-servidor de repositorio local repositorio durante la autenticación

Configuración configserver.yml, modificar el archivo: /// ruta después de la ruta del repositorio local, que lee https://github.com/spring-cloud-samples/config-repo/

 

 La variación de ResolveName resolveLabel y tratar de romper el @RequestMapping ( "/ {nombre} / {perfil} / {etiqueta} / **")

 

 En función de seguimiento a GenericResourceRepository findOne

 

 

Los cambios GitHub cometer el contrario, la nueva ubicación de un juez

 

Guess this.service.getLocations en un problema, continuará el seguimiento

 

 Continúa hacia arriba getLocations, el programa salta método getLocations org.springframework.cloud.config.server.environment.NativeEnvironmentRepository

 

La etiqueta es cierto con la ubicación directamente en la costura addLableLocations propiedad, para determinar si existe un directorio, se añade entonces a la matriz de salida, y, finalmente, pasar a las ubicaciones se devuelve objeto, es claro que este es el problema

 

En relación con la anterior resolveLable recuperar la etiqueta en el procedimiento (_) se sustituye por /, que se puede configurar para averiguar la carga útil de

 

 

 

 El punto clave dejado claro que, después de la prueba subsiguiente, la estructura de la carga útil es el siguiente:

carga útil

 1 duda: según el directorio de prueba, el directorio debe ser de dos salto a la raíz de por qué no por un salto de tres?

Ver FileUrlResource en primer lugar con sido procesada createRelcativeURL

 

 

 Continúa hacia arriba, para hacer frente a la URL encontrado

 

Siga interna, encontró parseURL despoja a la primera /../, por lo que el tiempo real para saltar catálogo de más de fallecimiento

 

 Duda 2: ¿Por qué no obtener el archivo sin un sufijo?

Ver recuperar la función en la operación para obtener el contenido posterior archivo, "StringUtils.getFilenameExtension (resource.getFilename) () toLowerCase () ;.", tratar de conseguir un sufijo, porque no hay retornos sufijo nulo, objeto nulo hacer toLowerCase funcionamiento anormal, y después de hacer porque no hay excepción detectada, haciendo que el programa para la salida

 

 Cuando posteriores vulnerabilidades oficiales de parche, así dicen que esto correcciones de errores, https://github.com/spring-cloud/spring-cloud-config/commit/740153b5aa74d960116f28be9c755e3b7debd2a2

Supongo que te gusta

Origin www.cnblogs.com/r00tuser/p/12458518.html
Recomendado
Clasificación