Soy un estudiante en la universidad, y tras haber realizado los exámenes de una de las convocatorias una tarde me conecté al portal del estudiante para consultar mis poco agraciadas notas. En esta historia, la curiosidad por la seguridad me llevó a, jugando con un parámetro, poder consultar no solo mis notas sino la de todos los estudiantes de la universidad, y esta es la historia que os vengo a contar.
Como ya sucede en muchos centros educativos, la única manera de hacerlo era a través de una aplicación web dedicada a estudiantes que estaba escrita en lenguaje PHP. En ella, tras iniciar sesión en la Intranet de la universidad con tu cuenta de estudiante se pueden consultar el expediente con todas las notas. En esta captura, acceder al expediente se hace a través de la opción “Veure expedient”.
Estando en ese punto, y habiendo leído tanto y tanto sobre seguridad en aplicaciones web en blogs como El lado del Mal, decidí mirar cómo estaba construyéndose la petición de generación del expediente. Son muchas veces las que se han hablado de las estafas de cambiar notas en la universidad, y quería ver si alguien con tiempo y conocimientos podría hacer esto.
Al analizar el código, pude ver que se estaba utilizando un parámetro, llamado NIA, para solicitar la generación del expediente de notas. Ese parámetros NIA es el Numero de Identificación del Alumno, y es que se utiliza para acceder a la base de datos y filtrar las notas y asignaturas cursadas por cada uno de los expedientes.
Como prueba, decidí que habría que probar a ver si cambiando el valor del NIA se podría acceder a información que no fuera de mi expediente. Es decir, si en lugar de utilizar el valor de NIA con información de mi sesión en el lado del servidor se estaba utilizando el valor que estaba siendo enviado desde el cliente. Este es un fallo de seguridad muy típico que se ha visto en muchas tiendas online para cambiar precios o en sistemas de información para ver datos no asociados a nuestra cuenta.
Como se puede ver, cambiando el valor con cualquier herramienta para desarrolladores web - yo utilicé Firebug - se puede probar si el servidor hace bien las cosas o estamos ante un fallo de manipulación de parámetros. En este caso elegí un valor al azar y comprobé que podía ver sus notas completas.
Hay que decir que para poder hacer esto es necesario tener una sesión de alumno, y es cierto que los NIA no son públicos, pero se podría haber hecho un programa que recorriera todo el rango y descargara las notas de todos los estudiantes.
Reflexión final
Por supuesto, me puse en contacto con los responsables de este sistema en la universidad y ellos lo arreglaron con la celeridad y cuidado necesario, así que esto ya no funciona. No obstante, está claro que nuestros datos están en sistemas que a veces no están lo suficientemente securizados y puede ser que alguien acabe accediendo a ellos por un fallo de lo más inesperado que pudiera ser explotado por cualquiera sin grandes conocimientos técnicos lo que deja claro que hay que invertir más en seguridad y en herramientas de protección para evitar al máximo estos problemas.
Autor: Gerard Sánchez
Figura 1: Cómo cotillear las notas de todos los compañeros de la Universidad por un bug |
Como ya sucede en muchos centros educativos, la única manera de hacerlo era a través de una aplicación web dedicada a estudiantes que estaba escrita en lenguaje PHP. En ella, tras iniciar sesión en la Intranet de la universidad con tu cuenta de estudiante se pueden consultar el expediente con todas las notas. En esta captura, acceder al expediente se hace a través de la opción “Veure expedient”.
Figura 2: Intranet de la universidad para ver las notas |
Estando en ese punto, y habiendo leído tanto y tanto sobre seguridad en aplicaciones web en blogs como El lado del Mal, decidí mirar cómo estaba construyéndose la petición de generación del expediente. Son muchas veces las que se han hablado de las estafas de cambiar notas en la universidad, y quería ver si alguien con tiempo y conocimientos podría hacer esto.
Al analizar el código, pude ver que se estaba utilizando un parámetro, llamado NIA, para solicitar la generación del expediente de notas. Ese parámetros NIA es el Numero de Identificación del Alumno, y es que se utiliza para acceder a la base de datos y filtrar las notas y asignaturas cursadas por cada uno de los expedientes.
Figura 3: Parametro NIA que identifica al estudiante de la universidad |
Como prueba, decidí que habría que probar a ver si cambiando el valor del NIA se podría acceder a información que no fuera de mi expediente. Es decir, si en lugar de utilizar el valor de NIA con información de mi sesión en el lado del servidor se estaba utilizando el valor que estaba siendo enviado desde el cliente. Este es un fallo de seguridad muy típico que se ha visto en muchas tiendas online para cambiar precios o en sistemas de información para ver datos no asociados a nuestra cuenta.
Figura 4: Sustitución del valor NIA en todos los valores del formulario donde aparecía el míio |
Como se puede ver, cambiando el valor con cualquier herramienta para desarrolladores web - yo utilicé Firebug - se puede probar si el servidor hace bien las cosas o estamos ante un fallo de manipulación de parámetros. En este caso elegí un valor al azar y comprobé que podía ver sus notas completas.
Figura 5: Acceso a un expediente de otra persona con manipulación de parámetros |
Hay que decir que para poder hacer esto es necesario tener una sesión de alumno, y es cierto que los NIA no son públicos, pero se podría haber hecho un programa que recorriera todo el rango y descargara las notas de todos los estudiantes.
Reflexión final
Por supuesto, me puse en contacto con los responsables de este sistema en la universidad y ellos lo arreglaron con la celeridad y cuidado necesario, así que esto ya no funciona. No obstante, está claro que nuestros datos están en sistemas que a veces no están lo suficientemente securizados y puede ser que alguien acabe accediendo a ellos por un fallo de lo más inesperado que pudiera ser explotado por cualquiera sin grandes conocimientos técnicos lo que deja claro que hay que invertir más en seguridad y en herramientas de protección para evitar al máximo estos problemas.
Autor: Gerard Sánchez
Por curiosidad, ¿Que universidad es?
ResponderEliminar