Ho un sistema di autenticazione personalizzato sul mio sito Web ASP.NET che può aiutarmi a registrare utenti dalle mie applicazioni Windows (desktop) e mobili (Android). Significa che non utilizzo la configurazione di ASP.NET.
Ho questo codice quando l'utente preme il pulsante di accesso.
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlCommand com = new SqlCommand();
con.Open();
com.Connection = con;
com.CommandText = "SELECT * FROM [Users-Users] WHERE (Password=@Password) AND (Username=@Username) ";
com.Parameters.AddWithValue("Password", System.Web.HttpUtility.HtmlEncode(PasswordTextBox.Text));
com.Parameters.AddWithValue("Username", System.Web.HttpUtility.HtmlEncode(UsernameTextBox.Text));
SqlDataReader data = com.ExecuteReader();
if (data.Read())
{
//Logged in successfully here I have redirect options
}
Puoi vedere che ho qui la codifica HTML che può fare questi:
& → & (ampersand, U+0026)
< → < (less-than sign, U+003C)
> → > (greater-than sign, U+003E)
" → " (quotation mark, U+0022)
' → ' (apostrophe, U+0027)
Quindi possiamo accedere senza password usando Sql Injection? per esempio →
username textbox :admin
password textbox :pass" OR 1=1