Estoy intentando resolver un problema de seguridad en un sitio web.
Básicamente, el sitio web calcula sha1(key + cookie)
para firmar una cookie para que el usuario no pueda cambiarla por sí mismo, y para lograr el objetivo debe encontrar el valor key
.
Tengo dos ideas (no muy buenas) para encontrar el valor de la clave secreta:
-
1: en línea (demasiado lento) intente todas las combinaciones del hash de autenticación con una cookie vacía (0 bytes): de esta manera, el sitio web computará
sha1(key)
solamente y dejará de mostrar un error cuando encuentre el valor correcto de la clave secreta. -
2: Desconectado (sigue siendo muy lento pero mejor ya que no necesita ninguna solicitud de red) ingrese al sitio web y obtenga {cookie, cookie_hash}. Intente calcular
xxx + cookie
para cada valor posible dexxx
: cuandosha1(xxx + cookie) == cookie_hash
, sé que xxx == clave secreta.
La cosa es, como notaste, que incluso el segundo método es de fuerza bruta y, por lo tanto, muy lento.
¿Crees que hay un método más rápido?