🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónLos cinco sitios donde se rompe una web
3 tareas · 20 min · Principiante
No hay mil clases de fallo web. Hay unas pocas familias que se repiten desde hace veinte años, y todas las has rozado ya. Aquí las nombras y aprendes a reconocerlas por su forma, no por su nombre.
Objetivo de la sala
No hay mil clases de fallo web. Hay unas pocas familias que se repiten desde hace veinte años, y todas las has rozado ya. Aquí las nombras y aprendes a reconocerlas por su forma, no por su nombre.Es el primero de la lista en casi cualquier informe del sector, y el que viviste en la primera sala.
La forma del fallo: el sistema no comprueba, en cada petición, si quien la hace tiene derecho a lo que pide.
Se presenta de tres maneras, y las tres las has visto o rozado:
- Una página accesible sin comprobar nada —
/agenda-interna - Un dato accesible cambiando un número —
?id=5210 - Una acción que solo debería poder hacer un administrador, disponible para cualquiera que sepa la dirección
Y la razón de que sea el número uno no es que sea el más sofisticado. Es lo contrario: es el más aburrido y el que más se olvida. Nadie olvida poner una pantalla de acceso; mucha gente olvida comprobar el permiso en la tercera pantalla del flujo, la que se añadió después.
Responde para continuar
¿Por qué el control de acceso roto encabeza las listas de fallos?
Ver pista de ayuda
Nadie olvida la pantalla de acceso. Se olvida la comprobación de la tercera pantalla.
La forma del fallo: texto que puso un desconocido acaba formando parte de algo que se ejecuta.
Ya tienes la idea del módulo 2 y de la sala anterior. Lo que cambia es dónde acaba ese texto, y cada destino tiene su nombre:
- Acaba en una consulta a la base de datos → inyección SQL
- Acaba en un comando del sistema → inyección de comandos
- Acaba en la página que ve otro usuario → cross-site scripting
Ese tercero merece una parada, porque es el menos intuitivo. Imagina que alguien escribe en un comentario un fragmento de programa en vez de un texto. Si el sitio lo guarda y luego se lo muestra a otros sin tratarlo, ese programa se ejecuta en el navegador de quien lea el comentario. Con sus permisos. Con su sesión.
Y ahí conecta con la sala anterior: eso es una de las formas de robar una cookie de sesión — y por eso existe la marca HttpOnly, que la hace invisible para el código de la página.
El patrón único detrás de las tres:
Todo intérprete que reciba datos y órdenes por el mismo canal se puede confundir. La solución siempre es la misma: separarlos, no filtrarlos.
Responde para continuar
Alguien escribe un fragmento de programa en un comentario y el sitio se lo muestra a los demás sin tratarlo. ¿Qué pasa?
Ver pista de ayuda
El navegador no distingue el programa que puso el sitio del que puso un comentario.
Configuración insegura. Contraseñas de fábrica, paneles de administración accesibles, mensajes de error con detalle en pantalla, permisos abiertos. No es un fallo de código: es algo que quedó como venía. Ya lo encontraste dos veces — el respaldo con rw- y la carpeta de subidas ejecutable.
Componentes con fallos conocidos. Casi ninguna aplicación se escribe entera: se apoya en decenas de librerías ajenas. Cuando una de ellas tiene un fallo público, todo lo que la usa lo tiene. Por eso la versión es lo primero que se mira, y por eso uptime importaba.
Fallos de autenticación. Contraseñas débiles permitidas, intentos ilimitados, cierre de sesión que no invalida nada, recuperación de contraseña que se puede abusar.
Y ahora la parte que hace útil toda esta lista, porque memorizarla no sirve de nada:
Las cinco familias se detectan con las mismas cuatro preguntas.
- ¿Quién puede llegar aquí? — control de acceso
- ¿De dónde viene este dato y dónde acaba? — inyección
- ¿Esto quedó como venía de fábrica? — configuración
- ¿Qué versión es esto? — componentes conocidos
Cuatro preguntas, cinco familias, veinte años de fallos. No hay que saberse la lista: hay que acordarse de preguntar.
Responde para continuar
¿Qué pregunta detecta un fallo de inyección?
Ver pista de ayuda
La inyección es un dato que termina donde no debía.
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 academia no funciona de forma segura.
Analíticos
Hoy no activos en la academia; 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 academia; quedarán listos si los conectamos y solo si los permites.