Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Autorización en el listado, no solo en el detalle

5 tareas · 38 min · Principiante

Después de un IDOR, casi todos los equipos arreglan la pantalla de detalle: abrir un objeto ajeno por su identificador ya devuelve 403. Pero los mismos objetos salen también por el listado, la búsqueda, los contadores y la exportación. Constructora Furatena te entrega el controlador de actas de su portal de contratistas, dos respuestas guardadas de una cuenta de prueba y un extracto del registro de acceso.

0 de 5 · 0%

Objetivo de la sala

Después de un IDOR, casi todos los equipos arreglan la pantalla de detalle: abrir un objeto ajeno por su identificador ya devuelve 403. Pero los mismos objetos salen también por el listado, la búsqueda, los contadores y la exportación. Constructora Furatena te entrega el controlador de actas de su portal de contratistas, dos respuestas guardadas de una cuenta de prueba y un extracto del registro de acceso.

Un objeto no sale de la aplicación solo por su pantalla de detalle. Sale en listados, en resultados de búsqueda, en el autocompletado, en informes, en exportaciones a hoja de cálculo, en contadores («hay 90 resultados») y en las respuestas de la API que alimentan todo eso. Si la regla «solo los frentes con contrato» se aplica únicamente en el detalle, cada una de esas puertas es un IDOR que no necesita adivinar identificadores: la aplicación los entrega en bloque.

La regla para el auditor es simple de decir: la autorización de un listado va dentro de la consulta. El filtro por relación (los frentes de esta persona) tiene que formar parte de lo que se le pide a la base de datos, antes de paginar y antes de contar. Filtrar después en el código deja páginas vacías y contadores que delatan, y filtrar en la pantalla del navegador no filtra nada.

Responde para continuar

¿Dónde debe aplicarse la regla de acceso en un listado de actas?

Ver pista de ayuda

Piensa en qué pasa con el total y con la página cuando el filtro llega tarde.

Abre actas_controlador.py y compara ver_acta con listar_actas. Después abre contratos-ct.morales.txt para saber qué frente puede ver la cuenta de prueba, y respuesta-listado.json para ver qué recibió. El registro de acceso muestra que el detalle de una de esas actas sí devolvió 403: la regla existe, solo que no en esa puerta.

Responde para continuar

¿Cuántas actas del listado que recibió ct.morales son de frentes en los que no tiene contrato? Escribe solo el número.

La búsqueda de Furatena sí filtra, pero tarde: pide una página a la base, quita lo que la persona no puede leer y devuelve lo que queda junto con un total contado sin ningún filtro. El resultado parece inofensivo, pero el total le cuenta a un contratista cuántas actas de la plataforma hablan de un tema, aunque no pueda abrir ninguna. En una aplicación con datos más sensibles (diagnósticos, investigaciones internas, nombres de clientes) ese contador basta para confirmar que algo existe.

Abre respuesta-busqueda.json y compara los resultados visibles con lo que la respuesta declara.

Responde para continuar

¿Qué cifra de la respuesta de búsqueda delata actas que ct.morales no puede ver?

Las exportaciones suelen escribirse al final, con prisa y pensando en la gerencia, y por eso son la puerta que más se olvida. Busca en el controlador la ruta que no aplica ninguna regla de acceso, ni la de detalle ni la de búsqueda, y confírmalo en registro-acceso.log con el número de filas que se llevó una cuenta de contratista.

Responde para continuar

¿Qué ruta entrega actas sin ningún filtro de autorización? Escríbela sin parámetros.

El equipo propone corregir las tres rutas por separado. Tienes que recomendar algo que también proteja la próxima puerta que se escriba.

Responde para continuar

¿Qué recomiendas?

Ver pista de ayuda

Si cada ruta escribe su propio filtro, la siguiente ruta puede olvidarlo.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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