Impacto de la inyección de SQL en la instrucción SELECT

2

Durante una prueba de penetración de rutina encontré una posibilidad de inyección SQL. Se aplican los siguientes criterios:

  • Microsoft SQL Server (2016);
  • La consulta debe comenzar con SELECT ;
  • El punto y coma ; no puede romper una instrucción y comenzar una nueva;
  • Todo lo demás está permitido.

Me pregunto cuál sería el mayor impacto posible para una vulnerabilidad de inyección SQL como esta. Obviamente, la divulgación de información es posible, pero me gustaría saber si también es posible realmente "romper" la declaración SELECT y, por ejemplo, a DROP una tabla. ¿Qué sugerirías para este escenario?

    
pregunta Vincent 11.07.2018 - 19:17
fuente

1 respuesta

0

No estoy 100% seguro en este primer detalle, por lo que le dirijo a cualquiera que no esté de acuerdo, pero estoy bastante seguro de que sus estipulaciones significan que no es posible no romper y ejecuta un DROP , INSERT , UPDATE , o cualquier otra cosa que no sea una simple selección.

Como resultado, el peor de los casos se limita a la divulgación de información, pero tenga en cuenta que es muy probable que el peor de los casos sea una fuga completa de su base de datos completa . Al menos con MySQL (no estoy familiarizado con los detalles de Microsoft SQL Server), la estructura de la tabla también se almacena como tablas a las que se puede acceder mediante una operación SELECT y, por lo tanto, las vulnerabilidades SQLi en un SELECT generalmente comienzan por Primero calcule todos los nombres de columnas y tablas (suponiendo que puede realizar SELECT inyecciones arbitrarias, que es lo que parece). Una vez que tenga eso, es muy fácil unir y volcar todas las tablas y columnas, lo que da como resultado una copia completa de toda su base de datos (así como de cualquier otra base de datos a la que el usuario de SQL tenga acceso).

Un rápido google me lleva a creer que se puede acceder a la estructura de la base de datos a través de los comandos de selección de SQL en Microsoft SQL, al igual que en MySQL. Por lo tanto, es posible realizar una copia completa de la base de datos en caso de una vulnerabilidad de selección abierta.

    
respondido por el Conor Mancone 11.07.2018 - 20:08
fuente

Lea otras preguntas en las etiquetas