Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Control de acceso roto e IDOR

4 tareas · 25 min · Principiante

El control de acceso roto es el fallo que no se ve mirando una pantalla bonita: la aplicacion carga un recurso por su identificador y se olvida de preguntar si quien lo pide tiene derecho a el. En Clavenet las facturas se sirven por su id de la URL sin comprobar al dueno, y un registro lo confirma. El auditor localiza el control ausente en el codigo y lo prueba con la evidencia del log; no explota nada.

0 de 4 · 0%

Objetivo de la sala

El control de acceso roto es el fallo que no se ve mirando una pantalla bonita: la aplicacion carga un recurso por su identificador y se olvida de preguntar si quien lo pide tiene derecho a el. En Clavenet las facturas se sirven por su id de la URL sin comprobar al dueno, y un registro lo confirma. El auditor localiza el control ausente en el codigo y lo prueba con la evidencia del log; no explota nada.

Un control de acceso correcto tiene dos pasos: saber quien eres (sesion) y comprobar que esto en concreto es tuyo (autorizacion). En factura.php de Clavenet hay sesion, pero falta el segundo paso: se busca la factura por $_GET['id'] y se devuelve sin comprobar que pertenezca al usuario en sesion. El auditor lo ve por lo que NO esta: no hay ninguna linea que compare el dueno de la factura con quien pregunta. El propio codigo lo deja anotado como comentario del arreglo que falta.

Leer lo que falta es mas dificil que leer lo que sobra. La pista es que entre buscar la factura y devolverla no hay ninguna comprobacion.

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.

Preparando el escritorio…

Responde para continuar

En factura.php, cual es el fallo?

Ver pista de ayuda

Hay sesion, pero falta la comprobacion de que el recurso es del usuario.

El control ausente deja huella en los registros. En el acceso.log de Clavenet el usuario 1001 pide varias facturas por su id —7781, 7782— y el servidor responde 200, aunque esas facturas son de otros usuarios. Para el auditor ese patron confirma el fallo: un mismo usuario accediendo a recursos que no son suyos y el servidor sirviendolos sin rechistar. Es una referencia directa a objeto insegura, lo que se llama IDOR.

El log no es un ataque: es la prueba estatica de que el control no existe, exactamente lo que el informe necesita mostrar.

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.

Preparando el escritorio…

Responde para continuar

Que confirma el acceso.log de Clavenet?

Ver pista de ayuda

Fijate en el usuario que pide y de quien son las facturas que recibe.

La clasificacion guia el arreglo. Este fallo es una referencia directa insegura a objeto (CWE-639), de la familia de la autorizacion ausente (CWE-862). El arreglo no es ocultar el id ni hacerlo mas dificil de adivinar —eso solo lo disimula—, sino comprobar en el servidor, antes de devolver el recurso, que pertenece al usuario en sesion. Un identificador no secreto deja de importar cuando el servidor verifica la propiedad.

Cambiar los ids por numeros al azar es la trampa clasica: parece un arreglo y solo retrasa al que prueba ids.

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.

Preparando el escritorio…

Responde para continuar

Que arreglo recomiendas para Clavenet?

Ver pista de ayuda

El arreglo bueno verifica la propiedad, no esconde el identificador.

La nota de triaje de Clavenet recoge el fallo: el archivo, el parametro, la clasificacion y el arreglo. Abrela en el laboratorio 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.

Preparando el escritorio…

Responde para continuar

Abre la nota de triaje de Clavenet (carpeta auditoria) y escribe el codigo del hallazgo que la cierra.

Ver pista de ayuda

Ultima linea de auditoria/hallazgo.txt.

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

Preparando el escritorio…

16:24
Terminal (user@whoami)
user@whoami:~$
Tab Autocompletar ↑/↓ Historial
bash 5.2.21
Whoami-Labs OS v3.0.1 LTS · build bcc89e

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