¿Entrar sin contraseña? Es más fácil de lo que crees

¿Y si te dijera que a veces no necesitas una contraseña para entrar? Hay sitios web donde la lógica del login está tan mal hecha que puedes acceder como si nada.

Lo que necesitas: un navegador (Chrome o Firefox). Pulsa F12 para abrir las herramientas de desarrollador — un panel técnico que muestra lo que hace la web por dentro.


¿Qué es Broken Authentication?

Cuando rellenas un formulario de login y pulsas “Entrar”, el navegador manda tu usuario y contraseña al servidor. El servidor los comprueba y decide si te deja pasar.

El fallo de hoy ocurre cuando esa comprobación está mal hecha o no existe. Hay webs donde puedes entrar sin saber la contraseña, solo porque el desarrollador lo programó mal.


¿Cómo se explota?

1. Credenciales por defecto

Lo primero que prueba cualquier atacante. Muchos paneles de administración nunca cambian la contraseña que viene de fábrica:

admin / (dejar vacío)
admin / admin
admin / 1234
root / root

Pruébalas en orden. A veces es así de fácil.

2. Espiar la petición con F12

Cuando pulsas “Entrar”, el navegador manda una petición al servidor. Puedes verla:

  • Abre F12 → pestaña Network (o “Red”)
  • Envía el formulario de login
  • Haz clic en la petición que aparece en la lista
  • Mira los parámetros que se mandaron

A veces ves cosas como role=user o auth=false — parámetros que controlan el acceso y que puedes intentar modificar.

3. Modificar la URL

Después de un login fallido, mira la barra de direcciones. Si ves algo como:

https://web.com/login?error=1

Prueba a cambiarlo manualmente a ?error=0 o borrar esa parte. Algunas webs usan estos parámetros para controlar qué muestran.

4. Campos ocultos en el HTML

Los formularios pueden tener campos invisibles que el usuario no ve pero que sí se mandan al servidor. Para verlos:

  • F12 → pestaña Elements (o “Inspector”)
  • Busca en el código type="hidden"
  • Si encuentras algo como <input type="hidden" name="role" value="user">, cámbialo desde la consola:
document.querySelector('[name=role]').value = 'admin'

Luego envía el formulario de nuevo.


🎯 Tu reto

Accede al panel sin saber las credenciales correctas.


🛡️ Cómo se protege

  • Comprobar usuario y contraseña siempre en el servidor, nunca solo en el navegador
  • Guardar contraseñas con hash — una función matemática que las convierte en algo ilegible. Si alguien roba la base de datos, no ve las contraseñas reales
  • Bloquear la cuenta tras varios intentos fallidos para evitar que prueben miles de combinaciones
  • Mensajes de error genéricos: decir “credenciales incorrectas” en vez de “ese usuario no existe” evita que el atacante sepa qué parte está bien

// ¿te has atascado?

🔒

Ver solución paso a paso

Haz clic para revelar

  1. Prueba primero: usuario admin, contraseña vacía.
  2. Si no funciona: admin/admin, admin/1234, root/root.
  3. Abre F12 → Network → envía el formulario → haz clic en la petición → mira los parámetros.
  4. Mira la URL después del intento — si hay ?error=1, cámbialo a ?error=0 en la barra del navegador.
  5. F12 → Elements → busca type="hidden" → cambia el valor con la consola → envía de nuevo.