Fallos del hackme – Hacer el login en javascript

Para empezar, antes de que me lluevan las críticas, conozco la existencia de Node.JS y otras alternativas que ejecutan javascript en el lado del servidor. Pero durante años, el único lado en el que se ejecutó javascript fue en el lado del cliente. Era la forma oficial de dotar de interactividad a las páginas web sin recurrir a la interacción con el servidor. Y de esa época viene este fallo a que vamos a referirnos ahora.

El código javascript se descarga junto a la página web y aunque no lo veamos en pantalla podemos verlo al consultar el código fuente de la página. Botón derecho -> ver código fuente.

Ahí tenemos un sugerente fichero clave.js dentro del directorio normal para guardar scripts, el js.

Si visitáis el fichero clave.js veréis que usa la función atob sobre una cadena. Como atob se usa para decodificar cadenas en base64, ya tenéis una pista de cómo viene codificada esa cadena. Pero no os hará falta usar un decodificador.

Al hacer el login correcto, os saldrá la KEY en pantalla, salvo que estéis usando algún bloqueador de scripts. En cuyo caso, tendréis la opción del decoder.

Observareis que ese login se verifica con una función javascript, que ha estado descargada todo el tiempo en vuestro propio equipo. Es más, usuario y contraseña están allí, en plano para vuestro disfrute.

Cuesta imaginar que hace unos años, algunos sitios web usaban este tipo de seguridad para sus áreas privadas.

Si que es cierto que existen los ofuscadores de código javascript. Así que algunas páginas no lo ponen tan fácil como esta. Pero ofuscar, es ofuscar. Puede revertirse con algo de esfuerzo. Lo importante es entender qué cosas hay que hacer en el navegador del cliente y cuáles deben hacerse en el servidor.

Si además, visitáis por curiosidad el directorio js, igual encontráis algo más.

Nos vemos en la próxima KEY!

Play That Class
Play That Class

Me encanta escribir, la tecnología y la educación. En estos artículos intento unir mis tres pasiones.

Artículos: 21

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *