Cuando estaba en la escuela, los estudiantes tomaban la mayoría de sus exámenes escritos en línea, cuyos resultados combinados representaban alrededor del 50% de la calificación final.
La forma en que funcionó fue que íbamos a un salón de clases con computadoras, abríamos el navegador, ingresábamos a nuestra cuenta en el sitio web de la escuela y tomábamos el examen. Era estándar comprobar la respuesta ABCD.
Ahora, por supuesto, durante los exámenes, todo el tráfico fuera de la intranet se bloqueó, por lo que nadie podía simplemente buscar en Google las respuestas.
Los estudiantes también pudieron iniciar sesión en sus cuentas escolares desde sus computadoras en casa, para ver su tarea y demás.
El backend web fue escrito en PHP y utilizó MYSQL como su base de datos. Como yo mismo era un desarrollador web aficionado en ese entonces, decidí mirar a través del código fuente para ver qué interesante podía encontrar. Después de analizarlo durante un tiempo, descubrí que el front-end (HTML + JS, en realidad no se puede ver el código PHP subyacente) en realidad era bastante meh y no estaba sucediendo nada realmente interesante y estaba a punto de rendirme y volver a hacer otras cosas, cuando de repente un pensamiento astuto entró en mi mente. “Hmmm, me pregunto qué tan seguro es esto … ja, ja, ja, ja, muhahahaha “. Intenté un poco de inyección SQL y otras travesuras, pero no me alegro, la aplicación web era una mierda, pero supongo que no fue TAN mierda. Y luego sucedió. Traté de cambiar aleatoriamente los parámetros en la URL (por ejemplo, Google ) a varios otros valores, en función de lo que se ve en varias URL mencionadas en el código y logré alcanzar un PREMIO MAYOR.
Una vez que mi dedo índice adolescente angustiado rompió la tecla Intro, por enésima vez ese día, estaba mirando una tabla que contenía una lista de todas las pruebas en la base de datos de la escuela. De ninguna manera. No puede ser, pensé. Probablemente sea una interfaz de prueba con algunas pruebas de práctica y otras cosas, y no el verdadero negocio. Así que revisé la lista buscando el examen que tomé hace solo 3 días … ¡y lo encontré! Después de hacer clic en él, enumeró todas las preguntas disponibles para esa prueba, junto con las respuestas correctas. (Cada estudiante recibe un montón de preguntas extraídas al azar del grupo de preguntas para esa prueba, para evitar que se copien entre sí) Esta era claramente una interfaz de administración, donde los maestros o el administrador podían ingresar y editar preguntas para las pruebas.
Entonces, ¿qué haría una persona buena y decente en esta situación? Informe este agujero al administrador del sistema de la escuela y luego salga con una estrella dorada al lado de su nombre y una sonrisa de satisfacción en su rostro sabiendo que hizo lo correcto. Probablemente.
Bueno, ya ves … el joven Mike no era una buena persona, era lo que llamarías … “un imbécil”.
Un pequeño ángel blanco apareció en mi hombro y dijo: “No lo hagas Mike, el crimen no paga”. un pequeño demonio rojo en el otro hombro le respondió , mientras lo apagaba “Solo si te atrapan”. Alejé al desagradable ángel y continué con mi plan.
Abrí un depurador rápido, que pasó por la interfaz de prueba y guardó todas las preguntas junto con las respuestas.
Entonces, todo lo que tenía que hacer ahora era esperar a que se anunciara el próximo examen escrito, luego revisar la lista de preguntas guardadas para ese examen y memorizar las respuestas correctas.
Ese era un buen plan … excepto … eh … que sonaba como demasiado esfuerzo. Quiero decir, si vas a hacer trampa, bien podrías ir hasta el final.
Así que hice un script en JavaScript, que podría inyectarse en la página web, a través del navegador, que utilizaba la computadora de la escuela. Este guión fue muy simple. Contenía todas las preguntas y respuestas, suspendidas en una matriz y una expresión regular que extraía las preguntas de la prueba de la página y mostraba una lista de respuestas correctas, en una fuente pequeña, en la parte inferior de la página. Entonces, todo lo que tenía que hacer era mirar las respuestas y marcar las casillas correspondientes. Cargué el script en la computadora como un archivo comprimido protegido por contraseña (todos los usuarios tenían su propio pequeño espacio de almacenamiento, que migró entre las computadoras cuando iniciaron sesión), durante el almuerzo, cuando las computadoras tenían acceso completo a Internet desbloqueado y luego durante una prueba Simplemente lo extraje y lo usé, eliminándolo después.
Agujas para decir, mis calificaciones mejoraron mágicamente durante ese tiempo. (Para empezar, no eran tan malos, pero esto me ahorró mucho tiempo al tener que estudiar basura aburrida que no me interesaba y que era exclusiva de esa prueba en particular u otra).
Nunca fui atrapado. Muchas veces consideré decírselo a mis amigos porque, por supuesto, me sentía como un hacker l33t y quería compartir mi éxito con otros, pero decidí no hacerlo. Si les dijera, ellos también querrían usarlo, y si las calificaciones de los exámenes escritos de todos se levantaran de forma milagrosa, llamaría la atención. O si una de las personas que sabían hablara por cualquier razón, estaría jodida. Probablemente expulsado. Así que siendo la buena persona que soy, me lo guardé todo para mí.
Nunca me arrepentí de hacerlo.