nicq

En el post anterior vimos la rápida reacción del equipo de desarrollo de NIC Chile al corregir una falla que permitía modificar información del perfil de cualquier usuario.

Nuevamente dieron respuesta a dos nuevas vulnerabilidades, de las cuales solo aceptaron y solucionaron una, argumentando que la otra era una funcionalidad que ellos habian implementado.

Las vulnerabilidades detectadas y reportadas permitian marcar como leidos los mensajes o notificaciones que recibia un usuario de manera arbitraria y la otra permite realizar ataques de fuerza bruta para enumerar cuentas de usuario.

Al momento de registrarse en el sistema, el sistema valida si el usuario está disponible antes de enviar el registro. Esta validación la hace mediante la URL https://clientes.nic.cl/registrar/usuario/isUsernameAvailable.do, enviando mediante GET la variable username=NOMBRE_DE_USUARIO. En esta request no existe ningun token, captcha ni nada que permita validar la llamada a esta función, permitiendo a un atacante realizar peticiones automatizadas.
Este función devuelve true en caso de que el usuario no exista en el sistema y false de lo contrario.
Respecto a este punto, NIC Chile indicó que era una “funcionalidad” que ellos mismos habian decidido poner en producción, con el fin de ayudar al usuario al momento de registrarse. Por otro lado, yo les respondí que deberian validar la llamada a esa función para que un atacante no pudiese automatizar las consultas, sin eliminar la funcionalidad.

La segunda vulnerabilidad -que si fue corregida- afectaba a los mensajes y avisos que la plataforma envia a los usuarios. Esta vulnerabilidad es de bajo impacto ya que simplemente permitia marcar los mensajes como leidos. Al ingresar a la seccion de avisos y pinchar en un mensaje, el sistema llama a https://clientes.nic.cl/registrar/mensajes/setAsRead.do entregandole como parametro id=ID_DEL_MENSAJE sin validar que el mensaje realmente correspondia al usuario, permitiendo que cualquier usuario marque como leido cualquier mensaje simplemente cambiandole el ID.