Obtención de acceso remoto a través del recorrido de ruta para aplicaciones web de Java

2

He encontrado un recorrido de ruta para una aplicación web y puedo obtener el contenido de todos los archivos a los que el usuario del servidor web tiene acceso de lectura. Quiero seguir explotando esto.

Con los sitios web de PHP, a veces puedo obtener acceso remoto de la siguiente manera:

  • Recibo las páginas HTML de respuesta con partes del contenido del archivo solicitado
  • Manipulo mis solicitudes para que el código PHP ejecutable se escriba en los archivos de registro del servidor web.
  • Intento OBTENER el contenido del archivo de registro para ejecutar mi código PHP.

Esto solo es posible si el contenido del archivo remoto se muestra a través de include o require o estupendamente eval 'd. En la mayoría de los casos, es algo como file_get_contents y echo , que no ejecuta el código. Pero hubo casos en los que logré hacerlo, y obtuve un pequeño shell que usa system para ejecutar cualquier cosa pasada como un parámetro GET con los privilegios del usuario del servidor web.

Mi pregunta es, ¿existe una vulnerabilidad similar para las aplicaciones web escritas en Java? ¿Es común? ¿Cómo lo exploto?

    
pregunta Rápli András 01.03.2017 - 19:11
fuente

1 respuesta

1

Es imposible ejecutar ejecutables con java si el código no contiene una línea como:

Runtime.getRuntime().exec(variableProvidedByUser);

Ahora, la explotación indirecta de una vulnerabilidad de carga (dado que la verificación del tipo de archivo falla) aún es posible si sabe que el archivo se ejecuta mediante un proceso distinto de Java.

Tenga en cuenta que hay aplicaciones que solo BLOBAN archivos en bases de datos, por lo que no es posible ejecutar el archivo si la aplicación no lo hace explícitamente o que Java solo lee utilizando un byteStreamReader que representará una matriz de bytes.

Otra cosa a tener en cuenta es que java se ejecuta en una máquina virtual (JVM) y que java es un lenguaje compilado y que no se puede acceder al espacio del usuario de manera arbitraria ni simplemente cargar scripts y ejecutarlos.

    
respondido por el AXANO 25.10.2017 - 21:05
fuente

Lea otras preguntas en las etiquetas