Omita el inicio de sesión con mqsql_fetch_object - Inyección de Sql [cerrado]

0

Tengo el siguiente código PHP y no puedo pasar la autenticación usando una inyección SQL. ¿Tienes alguna idea de cómo hacerlo?

$password=md5($_REQUEST['dr']);
$result=mysql_query("SELECT dr FROM table WHERE user='".$username."'");
if (mysql_fetch_object($result)->dr==$password) {
            $okay=true;
}
    
pregunta Noahnder 15.11.2016 - 15:54
fuente

1 respuesta

1

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.

    
respondido por el hmrojas.p 15.11.2016 - 16:14
fuente

Lea otras preguntas en las etiquetas