Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Enganchar funciones en caliente para saltar comprobaciones

4 tareas · 35 min · Principiante

Enganchar una función es interceptarla mientras la aplicación corre para ver qué recibe, qué devuelve o cambiar su resultado. Sirve para comprobar una hipótesis concreta: que un control vive únicamente en el cliente. Si una comprobación de «solo administradores», una detección de dispositivo con root o una validación de compra se pueden desactivar enganchando una función y la aplicación sigue como si nada, ese control nunca fue una barrera: era una sugerencia. Se trabaja sobre Colibrí en el emulador con Frida (instrumentación dinámica). La lección de la sala no es «saltar controles», es entender por qué un control que solo existe en el cliente no cuenta, y dónde hay que ponerlo para que cuente. Todo sobre la aplicación de laboratorio propia, para corregir lo que revele.

0 de 4 · 0%

Objetivo de la sala

Enganchar una función es interceptarla mientras la aplicación corre para ver qué recibe, qué devuelve o cambiar su resultado. Sirve para comprobar una hipótesis concreta: que un control vive únicamente en el cliente. Si una comprobación de «solo administradores», una detección de dispositivo con root o una validación de compra se pueden desactivar enganchando una función y la aplicación sigue como si nada, ese control nunca fue una barrera: era una sugerencia. Se trabaja sobre Colibrí en el emulador con Frida (instrumentación dinámica). La lección de la sala no es «saltar controles», es entender por qué un control que solo existe en el cliente no cuenta, y dónde hay que ponerlo para que cuente. Todo sobre la aplicación de laboratorio propia, para corregir lo que revele.

Colibrí tiene una pantalla de administración que la aplicación oculta a los clientes: comprueba el rol en el cliente y, si no es administrador, no dibuja el botón. Enganchando la función que hace esa comprobación y forzando que devuelva «administrador», el botón aparece y la pantalla se abre. Que se abra revela lo que había debajo: la comprobación era solo de interfaz. Lo que decide si esa pantalla carga datos reales de administración no es el botón; es lo que el servidor responda cuando la pantalla pida esos datos.

En Colibrí la pantalla se abre, pero aún no sabes si trae datos: eso depende de la API. El hallazgo hasta aquí es que el control de acceso empezaba y —quizá— terminaba en el cliente.

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

Enganchas la comprobación de rol de Colibrí, el botón de administración aparece y la pantalla se abre. ¿Qué has probado?

Ver pista de ayuda

Dibujar o no un botón es interfaz. El acceso de verdad lo decide quién responde a los datos: el servidor.

Colibrí se niega a arrancar si detecta que el dispositivo tiene root, «por seguridad». Enganchas la función de detección para que diga que no hay root, y la aplicación arranca. La pregunta útil es qué protegía esa comprobación. La detección de root defiende sobre todo a la aplicación de ciertos fraudes y del análisis, y molesta a usuarios legítimos con el dispositivo liberado; no protege los datos del usuario frente a un servidor que confía de más. Es una medida de las que hay que saber ubicar: tiene algún valor contra el fraude masivo, ninguno contra un control mal puesto en el servidor.

En Colibrí saltas la detección y sigues. Lo anotas como lo que es: una fricción que el analista quita para trabajar, no una barrera que proteja datos.

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

Saltas la detección de root de Colibrí y la app arranca. ¿Cómo se valora esa comprobación?

Ver pista de ayuda

Ubica la medida: la detección de root estorba al análisis y a algún fraude. No sustituye la validación en el servidor.

En Colibrí, al comprar una suscripción, la aplicación llama a una función interna que devuelve si la compra fue válida y entonces desbloquea la función de pago. Enganchas esa función para que devuelva «válida» sin pagar, y la función se desbloquea en la aplicación. Si el servidor cree que la suscripción está activa solo porque el cliente lo dice, el fraude es real y de negocio. Si el servidor verifica la compra contra la pasarela antes de servir la función, la aplicación mostrará la pantalla pero el servidor no dará el contenido de pago.

El hallazgo se cierra donde se decide de verdad: la validez de una compra la confirma el servidor contra la pasarela, nunca una función del cliente que el usuario puede reescribir.

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

Enganchas la validación de compra de Colibrí para que diga «válida» sin pagar y la función se desbloquea. ¿Dónde se corrige?

Ver pista de ayuda

Una compra la confirma quien cobra, no el cliente. El servidor valida contra la pasarela antes de entregar nada.

Abre el laboratorio y lee la salida de la sesión de enganches sobre Colibrí. Busca el enganche que, al forzar la comprobación, hizo ceder un control que resultó ser solo de interfaz y abrió la pantalla de administración: en esa línea hay un código de la sala. Escríbelo tal cual.

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 la salida de los enganches, localiza el que prueba que la comprobación de administrador vivía solo en el cliente y escribe el código de la sala anotado en esa línea.

Formato esperado: MOV-____

Ver pista de ayuda

El código está en el enganche que abre la pantalla de administración, no en el de la detección de root ni en el de la compra.

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