Last updated:
August 19, 2023 (438c03b)
2023-06-24
:
Detecto las vulnerabilidades al intentar consultar los resultados de un estudio.
Intento contactar a la empresa por medio de Twitter y LinkedIn.
2023-06-26
:
@LabMedicoChopo en Twitter
me proporciona el correo de un analista de seguridad, al que envío el reporte de vulnerabilidades.
2023-06-27
:
El área de seguridad digital confirma la recepción del reporte, mencionan que estaban al tanto
de las vulnerabilidades y que están trabajando en resolverlas.
Acordamos hacer público el reporte en 45 días (10 de agosto).
2023-08-20
:
Hago público el reporte en este sitio.
Laboratorio Médico del Chopo es una cadena de laboratorios mexicana con más de 70 años de existencia y presencia en todo el país. Generalmente es la primera opción para realizar estudios médicos en mi familia.
Hace poco noté que era muy fácil obtener los datos personales de terceros al intentar agregar a mi hija a mi cuenta para poder agendarle una serie de estudios. Esto motivó que investigara qué otras vulnerabilidades existían en el sitio y de qué forma mis datos personales estaban expuestos.
A continuación se encuentran los detalles de las dos vulnerabilidades de seguridad que pude encontrar. En ambos casos solo es necesario autenticarse en el sitio para poder llamar los endpoints no seguros y obtener datos no relacionados con la cuenta autenticada.
El endpoint https://www.chopo.com.mx/metro/patients/search/searchpost/
permite obtener
los detalles personales de cualquier paciente a partir del id del paciente. Al ser el id del paciente
un entero secuencial, sería trivial realizar múltiples llamadas para extraer los detalles de
la totalidad de los pacientes presentes en la base de datos. Los detalles personales expuestos
son nombre completo, género, teléfono, email y fecha de nacimiento.
En el ejemplo siguiente es necesario sustituir los valores de product_patient_id
,
form_key
y PHPSESSID
por valores válidos generados al iniciar sesión
en el sitio:
Esta vulnerabilidad no ha sido resuelta, siendo verificada por última vez el 19 de agosto. Si bien la URL devuelta ya no incluye los datos personales de forma legible, sigue siendo posible obtenerlos a partir del id del paciente, el cuál continúa siendo un entero secuencial.
El endpoint https://www.chopo.com.mx/metro/postventa/results/laboratorio/
permitía obtener
los resultados de laboratorio de cualquier estudio a partir del orderAdmissionKey
.
Al ser el id orderAdmissionKey
un entero secuencial, hubiera sido trivial realizar
múltiples llamadas para extraer los detalles de la totalidad de los estudios presentes
en la base de datos. Los detalles personales expuestos eran el nombre completo, género y
fecha de nacimiento del paciente; nombre completo del doctor tratante, si existe;
y el resultado de los estudios realizados.
En el ejemplo siguiente era necesario sustituir los valores de product_patient_id
,
form_key
y PHPSESSID
por valores válidos generados al iniciar sesión en el sitio:
Esta vulnerabilidad fue aparentemente resuelta, siendo verificada por última vez el 19 de agosto.
Se cambió el id orderAdmissionKey
a una cadena de texto, que presumiblemente es un token
generado a partir del id entero secuencial original.
Es preocupante que la primera vulnerabilidad aquí descrita siga sin resolverse y que los datos personales de quienes hacemos uso de los servicios del Laboratorio Médico del Chopo sigan expuestos y puedan ser recolectados por cualquiera. Es necesario diseñar un mejor proceso para poder acceder a los datos de terceros de una forma más segura.