🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónEscalada horizontal y vertical, y los parámetros ocultos
5 tareas · 45 min · Principiante
Escalar privilegios en una aplicación web no siempre exige un exploit: a veces basta con que el servidor acepte lo que el formulario jamás envía. La escalada horizontal llega a los datos de alguien con tu mismo nivel; la vertical, a funciones de un nivel superior. Aquí aprendes a distinguirlas y a leer, en las capturas de Despensa Andina, dos señales muy frecuentes: un campo que la API devuelve y no debería aceptar, y una función de administración protegida en un método y abierta en otro. Es lectura de evidencia de una prueba autorizada, con cuentas del equipo de pruebas.
Objetivo de la sala
Escalar privilegios en una aplicación web no siempre exige un exploit: a veces basta con que el servidor acepte lo que el formulario jamás envía. La escalada horizontal llega a los datos de alguien con tu mismo nivel; la vertical, a funciones de un nivel superior. Aquí aprendes a distinguirlas y a leer, en las capturas de Despensa Andina, dos señales muy frecuentes: un campo que la API devuelve y no debería aceptar, y una función de administración protegida en un método y abierta en otro. Es lectura de evidencia de una prueba autorizada, con cuentas del equipo de pruebas.En la escalada horizontal, una persona accede a recursos de otra del mismo nivel: un cliente que ve el pedido de otro cliente. En la escalada vertical, una persona accede a funciones o datos reservados a un nivel superior: un cliente que usa una función de administración. La guía de pruebas de OWASP las trata en WSTG-ATHZ-03, «Testing for Privilege Escalation», y el IDOR de la sala anterior es el caso típico de la horizontal.
La diferencia importa por la gravedad y por la corrección. Una escalada vertical suele abrir el control de todos los usuarios y de la configuración; la horizontal expone datos de iguales. En el informe se nombra cuál es, porque cambia la prioridad y la prueba que el cliente debe repetir.
Responde para continuar
Un cliente de la tienda consigue usar una función que solo debería tener el rol de administración. ¿Cómo se clasifica?
Ver pista de ayuda
Mira si lo que obtiene es de alguien de su mismo nivel o de un nivel por encima del suyo.
Muchas API construyen el objeto del perfil a partir de todo lo que llega en la petición. El formulario de la web solo envía nombre, teléfono y correo, pero el servidor tiene más campos en ese objeto: los puntos, el identificador y el que decide el nivel de acceso de la cuenta. Si no se limita explícitamente qué campos se pueden modificar, quien incluya uno más en la petición lo cambia. La debilidad se llama asignación masiva y su entrada en el catálogo de debilidades es la CWE-915, «Improperly Controlled Modification of Dynamically-Determined Object Attributes».
La señal de reconocimiento es una comparación: los campos que la API devuelve al leer el perfil, frente a los que el formulario envía. Todo lo que está en la primera lista y no en la segunda es candidato, y la prueba autorizada dice si el servidor aceptó un cambio. Abre el laboratorio y compara.
Responde para continuar
Abre el laboratorio. ¿Qué campo no está en el formulario, lo devuelve la API y el servidor aceptó cambiarlo en la prueba? Escribe el nombre del campo.
Ver pista de ayuda
Busca la fila donde el formulario dice «no» y el cambio aceptado dice «si»; las demás filas quedan descartadas por una de las dos columnas.
Con el campo identificado, la prueba registró el cambio de rol de la cuenta del equipo y la lectura posterior de una ruta de administración. Es la evidencia que convierte una sospecha en un hallazgo: el antes, el después y lo que la cuenta pudo abrir con su nuevo rol. Sin esa lectura de comprobación, «el campo se aceptó» queda como una observación; con ella, es el impacto demostrado.
Revisa en el laboratorio la tabla de cambios de rol y clasifica lo que ocurrió: de qué rol a cuál y a través de qué función.
Responde para continuar
En la tabla de cambios de rol, cuenta-a pasa de cliente a admin con una actualización de su perfil. ¿Qué escalada es?
Ver pista de ayuda
Compara el rol de antes con el de después y recuerda que el cambio se hizo con la función de perfil que cualquier cliente tiene.
El control de acceso se evalúa por función, y una misma dirección puede alojar varias: leer, crear, modificar, borrar. Es frecuente que alguien proteja el GET que lista usuarios y olvide el PATCH que cambia su estado, o que el control viva solo en el menú de la interfaz: si el botón no aparece, se da por hecho que la función no existe. El servidor, sin embargo, responde a lo que llega, aparezca o no el botón.
Por eso la prueba se repite con cada método que la API admite y con la sesión de cada rol. Abre el laboratorio y mira qué respondió la función de usuarios a la sesión de cliente en cada método.
Responde para continuar
Abre el laboratorio. ¿Qué ruta de administración respondió 200 al método PATCH desde la sesión de un cliente? Escríbela tal cual (empieza por «/»).
Ver pista de ayuda
Filtra las pruebas con respuesta 200 para la sesión de cliente y descarta la que es una consulta de sus propios pedidos.
La recomendación para la asignación masiva no es «validar la entrada»: es que el servidor trabaje con una lista explícita de campos que cada función admite modificar (en el caso del perfil, nombre, teléfono y correo) y descarte el resto. El rol, los puntos y el identificador se cambian solo por funciones internas con su propio permiso.
Para la función de estado de usuarios, la corrección es de otra naturaleza: una comprobación de rol en el servidor, aplicada a todos los métodos de la función, no solo al GET. Ocultar el botón en la interfaz no es un control. Un informe claro entrega las dos recomendaciones por separado, porque se arreglan en sitios distintos.
Responde para continuar
¿Qué recomiendas para el campo de rol aceptado en el perfil?
Ver pista de ayuda
El campo ya está fuera del formulario y aun así se aceptó. La corrección tiene que vivir donde se decide qué se acepta.
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.