Buenas tardes, estoy tratando de realizar un ejercicio y le he echo varias pruebas, con herramientas y también con pruebas manuales y no termino de conseguir el resultado. Si alguien me podría dar una guía lo agradecería, os pongo en situación.
Tengo un login
El cual tiene la siguiente función:
function areUserAndPasswordValid($user, $password) {
global $db, $userId;
$query = SQLite3::escapeString('SELECT userId, password FROM users WHERE username = "' . $user . '"');
$result = $db->query($query) or die ("Invalid query: " . $query . ". Field user introduced is: " . $user);
$row = $result->fetchArray();
if ($row === FALSE)
return FALSE;
if ($password == $row['password'])
{
$userId = $row['userId'];
$_COOKIE['userId'] = $userId;
return TRUE;
}
else
{
return FALSE;
}
}
Y se me facilita una lista de posibles password, pero nunca se me facilita ningún usuario.
¿Que infección estas haciendo?
Deberia salir, mostra lo que estas haciendo
Tambien, cuando te trabas practicando sqli, podes tirarle sqlmap con -v (o varias v) para que te muestre lo que esta haciendo
La inyeccion seria algo asi:
Citarnoexiste" union select password, "culo" from users limit 1,1 -- -
con eso la consulta va a devolver la clave en el campo userid, que es el que vas a poder ver a traves de la cookie
tambien trae "culo" en el campo password, asi que vas a tener que usar esa clave para que entre al if
¿Seguro que un select sin from pidiendo el campo password devuelve algo?
Que herramienta usas?
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
¿Seguro que un select sin from pidiendo el campo password devuelve algo?
me lo olvidé, ahi lo corregí