Obviamente, hay una Inyección SQL en el parámetro $username
, pero no se puede omitir el inicio de sesión, ya que la contraseña se compara con el resultado de la consulta; por ejemplo, si inyecta ' or 1=1 --
, la consulta será:
SELECT dr FROM table WHERE user='' or 1=1 --
Pero esto no significa que pueda acceder a la aplicación, el siguiente código de línea muestra cómo se compara el resultado de la consulta con el parámetro dr
:
if (mysql_fetch_object($result)->dr==$password) {
$okay=true;
}
Esto es parte de las mejores prácticas sobre el inicio de sesión basadas en consultas SQL; compare el nombre de usuario y la contraseña de forma independiente.
Espero que esta información te ayude.