¿Qué puedo hacer con SQLi ciego si la base de datos está cifrada?

4

Durante un compromiso de Pentest, encontré un SQLi ciego y puedo leer todas las tablas y los datos en ellas. Solo hay un problema. Están utilizando una clave AES estática (definida en web.config y no tengo acceso a ella) y todas las credenciales de inicio de sesión de CMS están cifradas. Todos los datos críticos se cifran a nivel de celda, incluso nombre, apellido, correo electrónico, etc.

Aunque el cliente aceptó el hallazgo, dicen que no es demasiado crítico ya que realmente no pude acceder a nada, ni siquiera pude iniciar sesión en CMS, realmente no pude hacer "nada" más que leer BLOB encriptados. Sé que encontrar es suficiente, solo quiero poder demostrar mi punto de vista y llevarlo al siguiente nivel.

El servidor es MSSQL 2012 y Win Server 2012, la aplicación web está escrita en C # / ASP.NET. Leí todo en la base de datos, pero el usuario de SQL de la aplicación web tiene un bajo privilegio, solo tengo SQLi ciego (basado en tiempo, lento y sin consultas apiladas, solo leyendo datos) y el puerto MSSQL no está abierto a Internet.

¿Me estoy perdiendo algo aquí? ¿Puedo hacer más aquí? ¿Puedo obtener más acceso del que tengo? Solo quiero demostrar un punto y no me gusta cómo el cliente minimizó mi hallazgo al afirmar (con razón) que mi hallazgo no fue realmente "algo". Por favor avise. Tengo el shell sqlmap sql completo aquí, incluso ejecuté consultas personalizadas, obtuve una lista de procedimientos almacenados, obtuve una lista de todas las bases de datos, todas las tablas, etc. Pero como dije, escribieron algo de código y utilizaron una clave estática (desconocida para mí), todo está encriptado a nivel celular.

    
pregunta GMX Rider 09.04.2018 - 02:23
fuente

1 respuesta

4
  • Ya rompiste la mitad de sus defensas. Ahora todo lo que queda es un compromiso de la clave AES. Eso debería ser una razón para preocuparse. Especialmente porque cambiar esa clave no será trivial, porque tendrían que volver a cifrar toda la base de datos para hacerlo.
  • El cifrado simétrico con una clave estática en el nivel de celda significa que los valores duplicados permanecen como valores duplicados. Esto le puede dar una pista sobre el contenido de algunos campos. Por ejemplo, si sabe que una determinada fila de la base de datos tiene el valor "VIH positivo" en un campo específico, ahora puede identificar todas las demás filas que también tienen ese valor.
  • Cuando tiene una inyección ciega de SQL, puede destruir datos usando ACTUALIZAR o BORRAR. También puede INSERTAR datos, pero sin la clave de cifrado solo puede insertar galimatías. Sin embargo, esto todavía podría causar problemas.
  • Usted dijo que puede obtener los procedimientos almacenados. Esos podrían hacer algo útil incluso sin tener que cifrar o descifrar nada.
respondido por el Philipp 09.04.2018 - 12:28
fuente

Lea otras preguntas en las etiquetas