🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónDel cliente al servidor: la API es la superficie de verdad
5 tareas · 40 min · Principiante
Esta es la sala que gobierna la ruta. Todo lo anterior —el secreto embebido, el dato local, el tráfico, los controles que ceden al engancharlos— apuntaba aquí: el cliente es una sugerencia, y la frontera real es la API. El servidor tiene que asumir que el cliente miente, porque cualquiera puede modificarlo, y validar cada petición por su cuenta. Se trabaja contra la API de respaldo de Colibrí en la nube, con el proxy para repetir y modificar peticiones. Cada tarea toma un control que parecía estar en la aplicación y comprueba si el servidor lo sostiene; cuando no lo sostiene, el arreglo va en el servidor, no en la app. La conclusión que hay que llevarse de toda la ruta: arreglar el cliente sin arreglar la API no cierra nada.
Objetivo de la sala
Esta es la sala que gobierna la ruta. Todo lo anterior —el secreto embebido, el dato local, el tráfico, los controles que ceden al engancharlos— apuntaba aquí: el cliente es una sugerencia, y la frontera real es la API. El servidor tiene que asumir que el cliente miente, porque cualquiera puede modificarlo, y validar cada petición por su cuenta. Se trabaja contra la API de respaldo de Colibrí en la nube, con el proxy para repetir y modificar peticiones. Cada tarea toma un control que parecía estar en la aplicación y comprueba si el servidor lo sostiene; cuando no lo sostiene, el arreglo va en el servidor, no en la app. La conclusión que hay que llevarse de toda la ruta: arreglar el cliente sin arreglar la API no cierra nada.La aplicación de Colibrí muestra tus pedidos pidiéndolos a la API por su identificador. En el proxy cambias ese identificador por otro y el servidor te devuelve el pedido de otro cliente —con su nombre, su dirección y lo que compró—. La aplicación nunca te habría dejado pedir ese identificador, pero la aplicación no es la frontera: el servidor respondió sin comprobar que el pedido fuera tuyo. Es un control de acceso roto, y el impacto se mide por el alcance: si los identificadores son correlativos, se podrían recorrer todos.
El arreglo está en el servidor: en cada petición, comprobar que el recurso pedido pertenece a quien lo pide, con la identidad que sale de la sesión. Cambiar la aplicación para que «no deje» pedir otro identificador no cierra nada, porque el atacante no usa la aplicación.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Cambias el identificador de pedido en la API de Colibrí y el servidor te da el de otro cliente. ¿Dónde está el arreglo?
Ver pista de ayuda
La app no es la frontera. El atacante va directo a la API; la propiedad del recurso se comprueba en el servidor.
Al comprar en Colibrí, la aplicación manda a la API el artículo y también el precio que mostró en pantalla. En el proxy cambias ese precio a la mitad y el pedido se registra con el precio que tú enviaste. El servidor confió en un dato que el cliente controla. La pantalla puede mostrar el precio, pero el importe que se cobra tiene que decidirlo el servidor consultando su propio catálogo, ignorando lo que el cliente diga que vale.
El arreglo: el servidor calcula el precio a partir del identificador del artículo y su catálogo; el precio enviado por el cliente se descarta. Lo mismo vale para cantidades, descuentos y cualquier número con consecuencia económica.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Modificas en el proxy el precio que la app de Colibrí envía y el pedido se registra con tu precio. ¿Cómo se corrige?
Ver pista de ayuda
Todo número con consecuencia económica lo decide el servidor. El precio que envía el cliente no se confía.
En el módulo anterior abriste, enganchando la app, la pantalla de administración de Colibrí. Ahora lo compruebas contra la API: llamas directamente a la ruta de administración /interno/usuarios que encontraste en el análisis estático, con tu sesión de cliente normal. Si el servidor responde con la lista de usuarios, el control de acceso vivía únicamente en el cliente —en el botón que no se dibujaba— y no existía en el servidor. Si el servidor responde «no autorizado», el control estaba donde debía y la pantalla vacía era la prueba.
En Colibrí el servidor responde con los datos: confirmado, el «solo administradores» era interfaz. El arreglo es que cada ruta sensible verifique el rol en el servidor, derivado de la sesión, con la regla de denegar por defecto.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Llamas a la ruta de administración de Colibrí con tu sesión de cliente y el servidor devuelve los datos. ¿Qué confirma y cómo se cierra?
Ver pista de ayuda
Si el servidor sirve los datos a un cliente normal, no había control. Ocultar la ruta no es autorizar; el rol se verifica en el servidor.
Es tentador cerrar estos hallazgos endureciendo la aplicación: quitar la ruta del código, ofuscar, reforzar la detección de root. Ninguna de esas medidas cierra los fallos de esta sala, porque todas asumen que el atacante usa la aplicación tal como se distribuye. El atacante habla directamente con la API, con el proxy, sin pasar por la interfaz. Mientras el servidor confíe en identificadores ajenos, en precios del cliente o en un rol enviado, el fallo sigue abierto aunque la aplicación sea impecable. La corrección de toda la ruta se concentra en una idea: validar en el servidor todo lo que tenga consecuencia, tratando cada petición como potencialmente manipulada.
En el informe de Colibrí las remediaciones van al servidor —propiedad del recurso, precio desde catálogo, rol desde la sesión—; las mejoras del cliente se anotan aparte como lo que son: fricción útil, no cierre del fallo.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
¿Por qué endurecer solo la aplicación de Colibrí no cierra los fallos de esta sala?
Ver pista de ayuda
El atacante no usa tu interfaz. Todo lo que tenga consecuencia se valida en el servidor; el cliente es fricción, no frontera.
Abre el laboratorio y repite contra la API de Colibrí la petición de un pedido con un identificador que no es el tuyo. El servidor te devuelve el pedido de otro cliente: en la revisión de esa respuesta hay un código de la sala. Escríbelo tal cual.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Pide a la API un pedido con un identificador ajeno; en la respuesta que devuelve el pedido de otro cliente, escribe el código de la sala anotado.
Formato esperado: MOV-____
Ver pista de ayuda
El código acompaña a la respuesta del control de acceso roto (el pedido ajeno), no a la del precio alterado ni a la de la ruta de administración.
Preparando el escritorio…
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.