Laboratorio: Inyección SQL basada en errores visibles
Aquí haremos uso de una propiedad de SQL llamada Cast, nos permitirá parsear la info para poder obtener algo en concreto.
Last updated
Aquí haremos uso de una propiedad de SQL llamada Cast, nos permitirá parsear la info para poder obtener algo en concreto.
Last updated
Antes que nada hicimos ‘- - para comprobar que no nos daba error al momento de intentar añadir la comilla simple y comentar el resto de la consulta original SQL.
Ahora bien intentamos convertir a entero la consulta de select 1 pero nos muestra un error ya que AND se transforma a entero y la pagina devuelve un error ya que AND debe ser de tipo booleano, la consulta que utilizamos fue:
Es por que ello que hacemos una igualdad que si o si nos dará verdadero y por ende podremos evitar el error de la pagina.
Y ahi está, 1=CAST, como 1=1 es verdadero la consulta no nos traerá problemas.
Tal parece que intentando hacer de nuevo la consulta de usernames de users no podemos debido a que se agoto la longitud de caracteres dentro de trackingID, lo que podremos hacer será quitar el valor original de trackingID para poder tener más espacio y poder ver la consulta.
Pero parece que la consulta ha devuelto más de una fila, lo que tendremos que hacer dentro de la consulta es limitarla solo a 1 salida para evitar este error, porque la consulta como tal está siendo correcta desde la BD pero falta que pueda terminar de assert en la consulta limitando el output.
Eso lo hacemos simplemente con LIMIT 1
Nos retorno algo interesante y es que ahora sabemos que administrator está en el primer indice de la Tabla, ya con esto podemos partir para intentar retornar es la contraseña de users.
Y EUREKA!
Nos ha devuelto un error pero maravilloso, dice que sintaxis de entrada invalida para el tipo integer que es entero, por lo que la contraseña es una cadena, y ahi la muestra.
iww4qweu4mbdez1rnp4n
r5rvr1hjwu34z7mxpxbx
En este caso podemos ver como la contraseña de admin cambia conforme se actualiza la cookie de seguimiento.
trackingID: QpFt2yiINqYEuDgh
Hemos pasado el laboratorio exitosamente.
La cookie de seguimiento (tracking cookie) en una consulta de inyección SQL generalmente no debería tener un impacto directo en la ejecución de la consulta SQL en sí misma. Las cookies de seguimiento se utilizan para rastrear la actividad de los usuarios en un sitio web, pero no afectan la estructura ni el funcionamiento de las consultas SQL en el servidor.