Sto cercando di dimostrare SQL Injection con una query UNION ma non ho risultati.
Questo è il codice C # e il database è 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();
Ho una casella di testo username e password e l'input è passato a questo metodo.
Ho provato quanto segue ma nessun risultato:
'union select * from products -
la tabella Utenti e la tabella Prodotti hanno tipi di colonna identici (int, nvarchar, nvarchar).
Qualcuno può aiutare? Cosa mi manca?