Tengo un sistema de autenticación personalizado en mi sitio web ASP.NET que me puede ayudar a registrar usuarios desde mis aplicaciones de Windows (Escritorio) y móviles (Android). Esto significa que no uso la Configuración de ASP.NET.
Tengo este código cuando el usuario presiona el botón de inicio de sesión.
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
}
Puedes ver que tengo una codificación HTML que puede hacer esto:
& → & (ampersand, U+0026)
< → < (less-than sign, U+003C)
> → > (greater-than sign, U+003E)
" → " (quotation mark, U+0022)
' → ' (apostrophe, U+0027)
Entonces, ¿podemos iniciar sesión sin contraseña usando Sql Injection? por ejemplo →
username textbox :admin
password textbox :pass" OR 1=1