Universidad Da Vinci: exposición de datos de estudiantes por abuso de endpoints AJAX
Threat IntelligenceInvestigación

Universidad Da Vinci: exposición de datos de estudiantes por abuso de endpoints AJAX


Un actor identificado como Dianna publicó en un foro clandestino una supuesta filtración atribuida a la Universidad Da Vinci de Guatemala.

La publicación afirma que fueron expuestos 98,099 archivos JSON y 16,000 fotografías de estudiantes. También menciona endpoints del portal uvirtual.udv.edu.gt asociados a consulta de información personal y fotografías.

En este caso, la revisión no se quedó únicamente en la publicación del actor. Se analizó una PoC descargada con dos conjuntos principales de archivos:

No se reproducen datos personales, fotografías identificables, tokens, parámetros completos ni endpoints explotables en esta publicación.

Captura censurada de la publicación del actor


Nota de divulgación responsable

Esta publicación documenta hallazgos técnicos de forma responsable.

Por esa razón:

El objetivo es explicar el patrón técnico observado, no facilitar abuso adicional.


Resumen ejecutivo

La PoC revisada contiene un volumen significativo de información personal estructurada.

Se validaron 98,099 JSON válidos y 16,821 fotografías. Los JSON tienen una estructura uniforme y contienen campos como nombre, apellidos, identificación, CIF, dirección, teléfonos y correo electrónico.

La evidencia técnica apunta a abuso de endpoints AJAX del portal uvirtual.udv.edu.gt, con dos patrones principales:

  1. obtención de fotografías mediante un parámetro asociado al CIF
  2. obtención de información personal mediante parámetros como IDU o Usuario

La lectura técnica más relevante es que esto no parece un problema de WAF. El problema apunta a autorización insuficiente a nivel de objeto, tipo IDOR/BOLA.

Si el backend entrega la foto o los datos personales solo porque se cambia un identificador, el control que falla no está en el perímetro. Está en la lógica de autorización del servidor.


Qué contiene la PoC

La PoC está organizada en dos carpetas:

estudiantes/
udv/

La carpeta estudiantes/ contiene archivos JSON. La carpeta udv/ contiene fotografías en formato JPG.

Conteo observado

Conjunto Cantidad Tamaño aproximado
estudiantes/ 98,099 JSON 1.2 GB
udv/ 16,821 JPG 1.1 GB
Total 114,920 archivos 2.2 GB

La afirmación del actor sobre 98,099 JSON coincide con el conteo observado. La afirmación de 16,000 fotografías también es consistente, ya que la carpeta de imágenes contiene 16,821 archivos JPG.

Vista censurada de la estructura de la PoC


Estructura de los JSON

Se validaron los archivos JSON del conjunto estudiantes/.

Resultado:

Todos los registros observados mantienen una estructura uniforme con campos como:

Esto no parece una recopilación manual desordenada. La consistencia del formato apunta a una extracción sistemática desde una fuente estructurada.

Ejemplo censurado de registro JSON observado en la PoC


Datos personales expuestos

En la muestra revisada se observaron campos con información personal sensible.

Campos con alta presencia de contenido:

Campo Registros con valor no vacío
IDU 98,099
Nombre 98,023
Apellidos 98,019
Identificacion 98,088
CIF 98,097
Celular 98,098
Telefono_Casa 98,098
Otro_Numero 98,098
Correo 89,026
Lugar_Nacimiento 87,112
Direccion 68,265

Esto es relevante porque no se trata solo de nombres o correos. La PoC contiene identificadores, teléfonos, direcciones y fotografías asociadas a estudiantes.

Ese tipo de información puede ser utilizado para suplantación, ingeniería social, fraude documental, acoso, extorsión o creación de perfiles personales.


Numeración observada en los JSON

Los archivos JSON están nombrados con identificadores numéricos.

Se observó:

Métrica Valor
JSON con nombre numérico 98,099
ID mínimo 2
ID máximo 130000
Rango teórico 129,999
Faltantes estimados 31,900

A diferencia del caso MINEDUC, aquí sí existen gaps en el rango. Eso no descarta enumeración. Puede indicar registros inexistentes, eliminados, no accesibles o respuestas no guardadas cuando no existía información válida.

La lectura más prudente es:

La PoC contiene archivos JSON nombrados con IDs numéricos entre 2 y 130000. Aunque hay huecos, el patrón es compatible con extracción automatizada de registros válidos a partir de identificadores.


Correlación entre JSON y fotografías

Un hallazgo importante fue la relación entre las fotografías y el campo CIF.

El conjunto udv/ contiene 16,821 fotografías.

Se compararon los nombres de archivo de las fotografías contra campos presentes en los JSON. El resultado fue:

Campo comparado Coincidencias con nombre de fotografía
IDU 0
Identificacion 319
CIF 16,787
Celular 0
Telefono_Casa 0
Otro_Numero 0

El patrón dominante es claro: las fotografías correlacionan principalmente con el campo CIF.

De 16,821 fotos, 16,787 coinciden con valores CIF presentes en los JSON. Eso equivale aproximadamente al 99.8% de las fotografías.

Esto sugiere que las fotos no están nombradas al azar. Están asociadas a un identificador presente en los registros del estudiante.

Ejemplo censurado de fotografía expuesta


Endpoints AJAX observados

La evidencia apunta a abuso de endpoints AJAX del portal uvirtual.udv.edu.gt.

Se identificaron dos rutas lógicas distintas:

/estudiantes/ajax/obtenerImagen.aspx?cifHijo=<CIF>

/estudiantes/Ajax/Ajax_InformacionPersonales.aspx?IDU=<IDU>&Usuario=<USUARIO>&Compania=<COMPANIA>&Sucursal=<SUCURSAL>&Token=<TOKEN>&_=<CACHEBUSTER>

No se publican valores reales de CIF, IDU, Usuario, Token ni parámetros completos.

Endpoint de fotografías

Se validó que obtenerImagen.aspx permite recuperar fotografías modificando únicamente el parámetro cifHijo.

Esto coincide con la correlación realizada sobre la PoC:

La lectura es directa: la ruta de imagen depende del CIF y no se observó una validación efectiva de autorización que impidiera consultar fotografías de terceros.

Endpoint de información personal

También se validó que Ajax_InformacionPersonales.aspx devuelve información personal al modificar parámetros como IDU o Usuario.

La respuesta no es únicamente un JSON simple. El endpoint devuelve HTML renderizado de la sección Mis Datos Personales, con datos personales embebidos directamente en la vista.

En el fragmento revisado se observan campos como:

También se observa que la propia vista carga la fotografía mediante una ruta AJAX con el parámetro cifHijo.

Aunque la URL incluye un parámetro Token, la evidencia observada indica que este no impide la consulta de registros ajenos si se cambian los identificadores.

No se publica el HTML completo porque contiene PII y posibles secretos expuestos del lado cliente.


Hallazgo adicional: respuesta HTML con datos sensibles

El fragmento de respuesta revisado muestra que el endpoint devuelve HTML de la sección Mis Datos Personales con información sensible ya renderizada.

Entre los elementos observados hay campos ocultos, valores de perfil, datos de contacto y una referencia directa a la imagen del estudiante mediante obtenerImagen.aspx?cifHijo=<CIF>.

También se observó un campo oculto asociado a TokenInformacionPersonales con un valor que no aparenta funcionar como token robusto de autorización.

Adicionalmente, en el HTML se observó una clave de servicio de validación de correo expuesta del lado cliente. No se reproduce el valor por razones de seguridad.

Estos elementos refuerzan la lectura técnica: el control crítico no debe estar en que exista un parámetro llamado token, sino en que el backend valide de forma estricta quién puede acceder a qué registro.


Lectura técnica: IDOR/BOLA

El punto técnico central es la autorización por objeto.

Según la validación realizada, al modificar identificadores como cifHijo, IDU o Usuario, el sistema devuelve información o fotografías de otros estudiantes.

Eso encaja con una falla de autorización a nivel de objeto, conocida como IDOR o BOLA.

En términos simples:

El modus operandi observado es abuso de endpoints AJAX. No es necesario asumir explotación compleja ni bypass del WAF.

El WAF no era el punto central. El problema es más básico y más grave: el backend entrega datos de terceros cuando se cambian identificadores.

El problema no es que exista un endpoint AJAX. El problema es que el backend entrega datos personales o fotografías sin validar de forma estricta que la sesión o usuario solicitante tenga derecho a consultar ese registro específico.


Por qué el token no sería suficiente

En el endpoint de información personal se observa un parámetro Token.

También se observa un campo oculto asociado a TokenInformacionPersonales.

Sin embargo, la evidencia indica que el token no funciona como control efectivo si permite consultar registros ajenos al modificar IDU, Usuario o cifHijo.

Un token solo aporta seguridad si cumple condiciones mínimas:

Si el token puede mantenerse igual mientras se modifican identificadores, entonces no funciona como control de autorización por objeto.

Un token largo o con apariencia aleatoria no es suficiente si el servidor no valida permisos reales.


Modus operandi observado

El modus operandi observado corresponde a abuso de endpoints AJAX.

Con base en la estructura revisada, el flujo sería:

  1. consultar datos personales modificando identificadores como IDU o Usuario
  2. obtener respuestas HTML con información personal embebida
  3. extraer o normalizar campos relevantes desde la respuesta
  4. usar el campo CIF para consultar fotografías mediante cifHijo
  5. guardar las imágenes devueltas por el endpoint de fotografía
  6. repetir el proceso sobre rangos amplios de identificadores

La PoC no incluye un descarga.log, script o README del actor. Por lo tanto, no puede reconstruirse la ventana temporal, tasa de descarga ni ejecución exacta.

Aun así, la evidencia técnica es suficiente para sostener que la extracción fue estructurada y basada en abuso de endpoints.

El punto clave es este:

solo cambiando identificadores como CIF, IDU o Usuario, el sistema devuelve datos o fotografías de terceros.


Qué debería investigar la institución

La Universidad Da Vinci debería validar y corregir con urgencia lo siguiente:

  1. Por qué obtenerImagen.aspx permite recuperar fotografías modificando únicamente cifHijo.
  2. Por qué Ajax_InformacionPersonales.aspx permite obtener información personal modificando IDU o Usuario.
  3. Por qué el parámetro Token no impide la consulta de registros ajenos.
  4. Si el token está realmente vinculado a la sesión, usuario autenticado y objeto consultado.
  5. Si existen controles de autorización por estudiante en el backend.
  6. Si cifHijo permite obtener fotografías de terceros sin sesión autorizada.
  7. Si hubo consultas secuenciales por IDU.
  8. Si hubo consultas masivas por cifHijo.
  9. Si hubo extracción histórica antes de la publicación del actor.
  10. Si se usaron credenciales válidas, sesiones robadas o acceso sin autenticación.
  11. Si existen secretos expuestos en HTML del lado cliente.
  12. Si hay otros endpoints AJAX con el mismo patrón de autorización débil.

Recomendaciones inmediatas


Recomendaciones de fondo

Este caso no debería resolverse únicamente ocultando rutas o bloqueando IPs.

La corrección real debe enfocarse en autorización por objeto y diseño seguro de APIs.

Controles necesarios:


Conclusión

La publicación de Dianna no debe tratarse como simple ruido de foro.

La PoC revisada contiene 98,099 JSON válidos y 16,821 fotografías, con información personal suficiente para considerar el caso como una exposición seria de datos.

La evidencia técnica apunta a abuso de endpoints AJAX en uvirtual.udv.edu.gt.

La fotografía es accesible mediante cifHijo. La información personal es accesible mediante identificadores como IDU o Usuario. La respuesta del endpoint incluye HTML renderizado con datos personales embebidos.

La falla principal no es “WAF débil”. La falla principal es autorización insuficiente a nivel de objeto.

Si un endpoint entrega datos personales de estudiantes solo porque se cambia un identificador, el problema no es el endpoint en sí. El problema es que el backend no está verificando si quien consulta tiene derecho a ver ese registro.

Esto debe validarse y corregirse con urgencia.


Evidencia visual utilizada en esta publicación

Todas las imágenes fueron tratadas para evitar reproducir información personal.

GuatemalaUniversidad Da VinciUDVExposición de datosAPIIDORBOLAOSINTThreat Intelligence