¿recuperar datos de la base de datos con el servidor de aplicaciones?
Posiblemente, sí. En muchas configuraciones típicas, donde los servidores no hayan tenido un fuerte fortalecimiento de la seguridad, sería posible.
Factores que podrían permitir esto:
El servidor de aplicaciones naturalmente requeriría una ruta de red al servidor de base de datos, por lo tanto, cualquier servidor de seguridad se configurará para permitir conexiones.
Es probable que el servidor de aplicaciones, en una configuración típica, esté en posesión de credenciales para la base de datos. Estos a menudo se almacenarán dentro del código fuente de la aplicación, o en un archivo de configuración. (Por ejemplo, el archivo web.config en las aplicaciones ASP.NET).
Por lo tanto, el atacante podría recuperar las credenciales y luego usar un cliente de base de datos en el servidor de aplicaciones para consultar la base de datos.
Algunos factores que podrían protegerse contra esto:
Estrictos permisos de archivo en el archivo que contiene las credenciales de la base de datos. Es posible que la cuenta de usuario que ha comprometido (con la que puede ejecutar comandos) no tenga suficientes privilegios.
Del mismo modo, las credenciales de la base de datos pueden estar cifradas, con permisos de archivo estrictos en la clave de cifrado (o una clave de cifrado protegida por un Módulo de seguridad de hardware - HSM ).
Los datos dentro de la base de datos pueden estar encriptados, con una protección similar para la clave que se muestra arriba.
No se almacenan credenciales, y la autenticación a la base de datos se logra a través de las credenciales de la cuenta del servicio de la aplicación (por ejemplo, a través de Kerberos a MSSQL). Esto requeriría que un usuario con los privilegios de base de datos correctos se vea comprometido.
La mayoría, si no todos, de los mecanismos anteriores podrían ser derrotados si el atacante tenía control administrativo del servidor de aplicaciones.
Lea otras preguntas en las etiquetas web-application appsec webserver databases