🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónAutorizacion a nivel de funcion
4 tareas · 25 min · Principiante
El IDOR de la sala anterior es un control de acceso que falla sobre un objeto: quien pregunta no es el dueno del recurso. Hay otra forma de romper el control de acceso que no mira el objeto sino la funcion: una accion que deberia ser solo de administradores y que cualquiera autenticado puede invocar directamente. En Clavenet hay un endpoint de administracion que borra usuarios sin comprobar el rol. Se localiza en el codigo, se prueba con el registro y se clasifica.
Objetivo de la sala
El IDOR de la sala anterior es un control de acceso que falla sobre un objeto: quien pregunta no es el dueno del recurso. Hay otra forma de romper el control de acceso que no mira el objeto sino la funcion: una accion que deberia ser solo de administradores y que cualquiera autenticado puede invocar directamente. En Clavenet hay un endpoint de administracion que borra usuarios sin comprobar el rol. Se localiza en el codigo, se prueba con el registro y se clasifica.El control de acceso se rompe de dos maneras distintas. El IDOR falla sobre un objeto: el usuario correcto pide un recurso que no es suyo. La autorizacion a nivel de funcion falla sobre una accion entera: una operacion que deberia estar reservada a un rol la puede ejecutar cualquiera que haya iniciado sesion. En admin-eliminar.php de Clavenet el endpoint borra un usuario y solo comprueba que haya sesion, nunca que la sesion sea de un administrador. El auditor lo clasifica distinto del IDOR porque el fallo no es de quien es el objeto, sino de quien puede llamar a la funcion.
Lee el archivo y pregunta: esta accion, deberia poder ejecutarla cualquier usuario autenticado?
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
En que se diferencia el fallo de admin-eliminar.php del IDOR de factura.php?
Ver pista de ayuda
Un fallo mira de quien es el recurso; el otro, quien tiene derecho a ejecutar la accion.
El control de funcion ausente deja huella en los registros. En el admin.log de Clavenet un usuario normal —no administrador— invoca el endpoint de borrado de usuarios y el servidor responde 200, ejecutando la accion. Para el auditor ese registro confirma el fallo: una operacion reservada que un rol sin privilegio puede disparar y el servidor obedece. No se necesita atacar nada: el registro ya muestra que la comprobacion no existe.
Fijate en el rol de quien llama y en lo que hace la accion que se le permitio.
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
Que confirma el admin.log de Clavenet?
Ver pista de ayuda
Mira quien hace la peticion, que accion es y con que codigo responde el servidor.
Esconder el enlace de administracion en la interfaz no es un control: el endpoint sigue ahi y se puede llamar directo sin pasar por la pantalla. El arreglo es comprobar el rol en el servidor, dentro de la propia funcion, antes de ejecutar la accion. La clasificacion es autorizacion ausente (CWE-862), de la familia del control de acceso roto. El auditor recomienda la comprobacion en servidor y advierte contra el control que vive solo en la interfaz, que es el error clasico.
Lo que no se ve en la pantalla se sigue pudiendo pedir; el control tiene que estar donde se ejecuta la accion.
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
Que arreglo recomiendas para admin-eliminar.php?
Ver pista de ayuda
El endpoint se puede llamar sin pasar por la interfaz; el control va donde se ejecuta la accion.
La autorizacion a nivel de funcion tiene su propia nota de triaje en Clavenet, con el archivo, la accion, la clasificacion CWE-862 y el arreglo. Abrela en el laboratorio, confirma que describe el endpoint de borrado sin control de rol y lee el codigo del hallazgo con el que cierra.
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
Abre la nota de triaje de la autorizacion de funcion de Clavenet (carpeta auditoria) y escribe el codigo del hallazgo que la cierra.
Ver pista de ayuda
Es la nota del endpoint admin-eliminar.php, no la del IDOR de las facturas.
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.