🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónAlmacenamiento débil, cómo se ve y qué se concluye
5 tareas · 38 min · Principiante
Un almacén débil casi nunca se anuncia como tal. Se ve en una tabla: valores repetidos entre cuentas, esquemas mezclados, contraseñas que alguien puede recuperar. En esta sala lees la tabla de cuentas de la intranet de tarifas de Bocachico Logística y un fragmento de su registro, y aprendes a pasar de lo observado a la conclusión: qué tipo de debilidad es, cuántas cuentas alcanza y qué se hace con ella. Todo es lectura de una exportación; nadie intenta recuperar ninguna contraseña.
Objetivo de la sala
Un almacén débil casi nunca se anuncia como tal. Se ve en una tabla: valores repetidos entre cuentas, esquemas mezclados, contraseñas que alguien puede recuperar. En esta sala lees la tabla de cuentas de la intranet de tarifas de Bocachico Logística y un fragmento de su registro, y aprendes a pasar de lo observado a la conclusión: qué tipo de debilidad es, cuántas cuentas alcanza y qué se hace con ella. Todo es lectura de una exportación; nadie intenta recuperar ninguna contraseña.Una contraseña guardada en texto plano se lee. En base64 también: base64 es una codificación, no una protección, y se deshace sin clave. Cifrada con AES y con la clave en el mismo servidor, se recupera con acceso al servidor. Las tres comparten una propiedad: la contraseña original se puede obtener. Para una contraseña eso es un fallo de diseño, porque el sistema nunca necesita recuperarla, solo comprobar que quien la escribe la conoce. Un hash con función de contraseñas es unidireccional precisamente por eso.
Abre SELECT * FROM usuarios_intranet y mira qué esquemas aparecen.
Responde para continuar
Una cuenta guarda la contraseña en base64. ¿Cómo se trata en el informe?
Ver pista de ayuda
Base64 se deshace sin clave; pregúntate si una codificación es unidireccional.
El hallazgo de una debilidad se mide en cuentas: no es lo mismo una cuenta que doce. Para el informe hay que contar qué cuentas tienen su contraseña recuperable, sumando todos los esquemas reversibles, sin repetir ni olvidar ninguno. Es un recuento sobre la lista, no una lectura de una celda.
Cuenta en la lista las cuentas cuyo esquema permite obtener la contraseña original.
Responde para continuar
¿Cuántas cuentas de la intranet tienen la contraseña recuperable? Escribe solo el número.
Ver pista de ayuda
Suma las cuentas en texto plano, en base64 y cifradas con una clave que está en el mismo servidor.
Si dos cuentas guardan exactamente el mismo valor, es que usan la misma contraseña, y eso es visible sin descifrar nada. Es la señal de un hash sin sal: la sal existe para que esto no pase. Un auditor no necesita saber cuál es la contraseña; le basta con ver que el valor se repite para concluir que el almacén no tiene sal y que quien robe la tabla puede atacar de golpe a todas las cuentas que lo comparten.
Consulta las cuentas con MD5 sin sal con SELECT usuario, valor_guardado FROM usuarios_intranet WHERE esquema = 'MD5 sin sal'.
Responde para continuar
¿Qué valor guardado aparece repetido en más de una cuenta con MD5? Escríbelo tal cual.
Ver pista de ayuda
Mira la columna del valor guardado y busca el que se repite en dos usuarios.
Una sal global —la misma para todas las cuentas— se parece a una defensa y no lo es del todo. Evita que sirvan tablas calculadas para el mundo entero, pero deja el resto del problema igual: dos cuentas con la misma contraseña siguen dando el mismo valor, y un hash rápido como SHA-256 se calcula millones de veces por segundo. El hallazgo tiene dos partes: el hash es rápido y la sal no es única. El arreglo es una función de contraseñas con sal por cuenta.
Responde para continuar
Dos cuentas guardan la contraseña con SHA-256 y una sal global. ¿Qué se concluye?
Ver pista de ayuda
Una sal compartida no evita que contraseñas iguales den hashes iguales, y SHA-256 es rápido.
A veces el almacén está bien y el problema está al lado: la contraseña se escribe en claro en un registro. Un registro de acceso lo lee mucha más gente que la tabla de cuentas —soporte, operaciones, herramientas de análisis— y suele conservarse más tiempo y en más sitios. El hallazgo es independiente del algoritmo: da igual lo bien que se proteja la tabla si la clave pasa por el registro. El arreglo es dejar de registrar el campo y, si estuvo expuesta, tratarla como comprometida.
Lee SELECT * FROM registro_app y localiza la petición cuyo registro lleva una contraseña.
Responde para continuar
¿Qué ruta de la aplicación deja una contraseña en el registro? Escribe la ruta tal cual.
Ver pista de ayuda
Busca la línea del registro que incluye el campo de la clave.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.