Sí, puedes, aunque eres un poco limitado. Las opciones son:
-
todos los datos de las tablas con el mismo número de columnas que la tabla de la que selecciona el material original, siempre que conozca el nombre de la tabla. La inyección sería:
' UNION SELECT * from someOtherTable -- -.
-
todos los datos de las tablas con menos nombres de columnas que la cantidad de columnas en la tabla original, siempre que haya una tabla con la cantidad de columnas de la tabla original menos la cantidad de columnas que desea seleccionar:
' UNION SELECT * from someOtherTable JOIN aThirdTable -- -
-
toda la meta información disponible a través de las funciones ( version()
, database()
, etc.).
- todos los datos de las tablas donde conoce las columnas, por ejemplo,
mysql.user
.
- Puedes adivinar nombres de columnas.
El elemento que especifica las columnas seleccionadas se llama select_expr
en la documentación de MySQL . Si no controla la expresión de selección de la selección original y no conoce los nombres de las columnas, y no puede crear la cantidad correcta de columnas mediante uniones, hay, por lo que sé, y cuando leo la documentación, de ninguna manera de lograr eso.