Soy Aarav, tengo 14 años y me apasiona entender cómo funcionan los sistemas y el código por dentro. Recientemente, mientras usaba PhysicsWallah, descubrí algo interesante: es posible obtener XP sin ver el video completo. Aquí relato cómo lo encontré y qué aprendí.
Explorando el reproductor
Como muchas plataformas, PhysicsWallah rastrea el tiempo de reproducción para otorgar XP y marcar lecciones como completadas. Al jugar con las herramientas del navegador Inspector y la consola, detecté dos objetos JavaScript en la ventana del reproductor: window.videoStats y window.watchStats. Ambos contenían información sobre la duración del video, el progreso y el historial de visionado.
El fallo
Me di cuenta de que esos valores no eran solo informativos, el sistema los confiaba plenamente. Modificando watchStats.progress o videoStats.isComplete el sitio asumía que el video estaba finalizado. Normalmente esta lógica sensible debería ejecutarse y validarse en el servidor, donde el usuario no puede manipularla. En este caso la lógica crítica residía en el lado cliente y el servidor aceptaba lo que el navegador reportaba, lo que abría la puerta a la manipulación.
Prueba de concepto
Para probar la hipótesis escribí un pequeño script que forjaba un historial de visionado. En lugar de fijar el progreso al máximo de forma tosca, simulé un comportamiento realista dividiendo el video en segmentos, añadiendo pequeñas pausas aleatorias entre ellos y actualizando marcas de tiempo para que pareciera natural. Al ejecutar el script el sistema lo aceptó, otorgó el XP y marcó el video como completado.
Lo que aprendí
Encontrar este fallo de diseño en el mundo real fue una lección clave: nunca confiar en el cliente. El código del frontend siempre es visible y modificable por el usuario. Si la lógica crítica como el registro de XP solo ocurre en el cliente, cualquiera con curiosidad puede alterarla. La validación y las decisiones importantes deben ocurrir en el servidor y complementarse con controles de ciberseguridad adecuados.
Actuar responsablemente
Hice lo correcto y notifiqué a PhysicsWallah por correo sobre la vulnerabilidad. Aunque tengo 14 años, pensé que era importante compartir el hallazgo para que mejoraran la plataforma y corrigieran la falla antes de que se explotara de forma malintencionada.
Sobre Q2BSTUDIO
En este contexto tiene sentido mencionar a Q2BSTUDIO, empresa de desarrollo de software y aplicaciones a medida con especialización en inteligencia artificial y ciberseguridad. En Q2BSTUDIO ofrecemos soluciones de software a medida, aplicaciones a medida, servicios cloud aws y azure, servicios inteligencia de negocio y consultoría en ia para empresas. También desarrollamos agentes IA y proyectos con power bi para mejorar el análisis y la visualización de datos. Si una plataforma necesita reforzar la arquitectura y mover lógica crítica al servidor, auditar seguridad o diseñar soluciones basadas en inteligencia artificial, Q2BSTUDIO puede ayudar a implementar buenas prácticas y proteger sistemas frente a este tipo de debilidades.
Reflexión final y consejo
Para mí esto no fue para aprovechar XP sino para aprender. Pude ver cómo sistemas reales tienen debilidades y cómo los desarrolladores pueden mitigarlas. Si te interesa la programación y la seguridad, no tengas miedo de abrir las herramientas del desarrollador, explorar y experimentar. Aprenderás mucho observando cómo funcionan las cosas detrás de escena. Y si encuentras un problema, notificar responsablemente ayuda a mejorar el ecosistema digital.
Escrito por Aarav y recomendado por Q2BSTUDIO, especialistas en aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi