Estoy tratando de demostrar la inyección SQL con una consulta UNION pero no estoy obteniendo resultados.
Este es el código C # y la base de datos es SQL Server 2008 R2:
string cString = "server=.\sqlexpress; database=testDB; trusted_connection=true";
SqlConnection conn = new SqlConnection(cString);
conn.Open();
string sql = "select * from Users where UserName='" + userName + "' and Password='" + password + "'";
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
SqlDataReader reader = cmd.ExecuteReader();
StringBuilder sb = new StringBuilder(1024);
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
sb.Append(" " + reader.GetName(i));
sb.Append(": ");
sb.Append(reader[i]);
}
sb.Append("<br />");
}
dataLabel.Text = sb.ToString();
Tengo un cuadro de texto de nombre de usuario y contraseña y la entrada se pasa a este método.
Intenté lo siguiente pero ningún resultado:
'union select * from products -
la tabla Usuarios y la tabla Productos tienen tipos de columna idénticos (int, nvarchar, nvarchar).
¿Puede alguien ayudar? ¿Qué me estoy perdiendo?