Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Exposición excesiva de datos y límite de tasa

5 tareas · 40 min · Principiante

Dos fallos que no necesitan saltarse ninguna autenticación. El primero es que la API devuelva más campos de los que la aplicación usa, y los deje a la vista de quien lea la respuesta cruda. El segundo es que no haya freno al número de peticiones, lo que deja sin protección operaciones sensibles como el segundo factor o los listados enormes. En el Top 10 de APIs de OWASP son API3 y API4. Esta sala se trabaja con capturas de la prueba autorizada de Tamarindo Envíos y una sola ráfaga medida dentro del tope que fija el alcance. Lees cifras y las convertes en riesgo; no se repite ninguna ráfaga.

0 de 5 · 0%

Objetivo de la sala

Dos fallos que no necesitan saltarse ninguna autenticación. El primero es que la API devuelva más campos de los que la aplicación usa, y los deje a la vista de quien lea la respuesta cruda. El segundo es que no haya freno al número de peticiones, lo que deja sin protección operaciones sensibles como el segundo factor o los listados enormes. En el Top 10 de APIs de OWASP son API3 y API4. Esta sala se trabaja con capturas de la prueba autorizada de Tamarindo Envíos y una sola ráfaga medida dentro del tope que fija el alcance. Lees cifras y las convertes en riesgo; no se repite ninguna ráfaga.

La entrada API3 de OWASP, autorización a nivel de propiedad de objeto rota, reúne dos fallos: devolver propiedades que quien llama no debería ver (exposición excesiva de datos) y aceptar modificar propiedades que no debería poder cambiar. Un patrón típico es que la API devuelve el objeto completo y la aplicación móvil solo pinta unos campos. El resto sigue viajando, visible para cualquiera que mire la respuesta con una herramienta, una cuenta de prueba o un proxy.

La corrección no está en la aplicación: el servidor debe devolver solo las propiedades que ese rol necesita, con una lista explícita, no «todo el objeto menos lo que se me ocurra ocultar».

Responde para continuar

La app móvil de Tamarindo solo muestra cuatro de los nueve campos que devuelve la API. ¿Dónde se corrige la exposición de los otros cinco?

Ver pista de ayuda

Si el campo viaja, se puede leer. El servidor es quien decide qué sale.

No todos los campos sobrantes pesan igual. Un rol interno es una pista; una nota interna es un dato de negocio; el resultado de una función de derivación de una contraseña es un secreto de la cuenta que, aunque sea irreversible en teoría, facilita ataques sin conexión si se filtra. Se prioriza por lo que permite hacer a quien lo lea.

Abre respuesta_de_obtenerCliente, que recoge el cuerpo completo que devolvió el servidor a la cuenta de prueba, y localiza el campo que guarda el resultado de la función de derivación de la contraseña.

Responde para continuar

¿Cómo se llama el campo de la respuesta que contiene el hash de la contraseña?

Ver pista de ayuda

Ejecuta `SELECT * FROM respuesta_de_obtenerCliente` y revisa los campos que la app móvil no usa.

La entrada API4, consumo de recursos sin restricciones, incluye operaciones que se pueden repetir sin límite. OWASP cita explícitamente la validación de códigos de un solo uso y la recuperación de contraseña como operaciones que deben tener un tope por usuario en una ventana de tiempo. Un servidor que protege su inicio de sesión con un límite y deja sin límite la validación del segundo factor tiene el candado en la puerta equivocada.

Cuando el límite funciona, el servidor responde con el código 429, «demasiadas peticiones». La prueba de tasa de Tamarindo se hizo una vez, con 120 peticiones por minuto, el tope que fija el alcance, por operación. Consulta prueba_de_tasa y localiza la operación que nunca respondió 429.

Responde para continuar

¿Qué operación no respondió ningún 429 durante la ráfaga de prueba?

Ver pista de ayuda

Ejecuta `SELECT * FROM prueba_de_tasa` y mira la columna respuestas_429.

Para el informe, el riesgo se expresa con una cifra que el cliente entienda. La ráfaga de la prueba admitió 120 intentos por minuto sin freno. Si esa velocidad se mantuviera una hora, ¿cuántos intentos de validación admitiría el servidor? Es un cálculo de exposición, no un intento: la cifra se compara con el espacio de códigos posibles para decidir la gravedad.

Responde para continuar

A la velocidad observada en la ráfaga, ¿cuántos intentos de validación admitiría la operación sin límite en una hora?

Ver pista de ayuda

Toma las peticiones por minuto de esa operación en `prueba_de_tasa` y multiplícalas por los minutos de una hora.

Otra forma de consumo sin restricciones es el tamaño de página. Si un parámetro permite pedir cien mil registros de una vez, una sola petición vale por cientos y descarga lo que hace falta en lotes grandes. La defensa es fijar en el servidor un máximo razonable de registros por respuesta, no confiar en el valor por defecto que usa la app.

Mira parametros_de_listado, que recoge qué máximo aceptó cada listado antes de rechazar la petición.

Responde para continuar

¿Qué operación de listado acepta el mayor tamaño de página?

Ver pista de ayuda

Ejecuta `SELECT * FROM parametros_de_listado` y compara la columna maximo_aceptado.

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