
CVE-2022-37177 - HireVue-Broken-Or-Risky-Cryptographic-Algorithm
Cuando visitas el enlace de invitación a la entrevista que HireVue proporciona, se te dirige a una página de términos donde aceptas los términos antes de comenzar el proceso de entrevista grabado y cronometrado. Esta respuesta HTTP inicial incluye las preguntas de la entrevista que se harán durante la misma, codificadas mediante un cifrado de valla. Esto se descifra fácilmente, lo que proporciona acceso a todas las preguntas de la entrevista antes de comenzar realmente el proceso. Si no aceptas los términos, la entrevista no comienza, así que puedes visitar el enlace y salir tantas veces como quieras hasta que aceptes comenzar la entrevista. Los clientes de HireVue no esperan que las preguntas de la entrevista se conozcan antes de que esta comience, y hay un intento de ocultarlas mediante un cifrado de valla, pero es una forma débil de cifrado.
También puedes obtener otra información de esta respuesta HTTP en texto plano, como el número de preguntas, el tiempo máximo para responder cada pregunta en segundos, el número de intentos que tienes, el tiempo de preparación antes de que comience la grabación, etc.
Respuesta inicial de: hiring-org-subdomain.hirevue.com/interviews/interview-ID. Deberás localizar la sección llamada questions que contiene las preguntas cifradas en formato JSON. Las preguntas estarán ubicadas en el campo text. Se verá como la porción de la respuesta HTTP a continuación.
...
"questions": [
{
"id": 123456,
"type": "video",
"text": "hsi htteqetoswl oklk hnecytduigari ec ihr Z25Ti swa h usin illo iewe nrpe sn alfnecpe.(..)",
"maxDuration": 180,
"isRatable": true,
"minDuration": 10,
"prepTimeSeconds": 120,
"disableCopyPaste": false,
"secondsElapsed": 0,
"isAnswered": false,
"answer": null,
"attemptsAvailable": 3
},
{
"id": 654321,
"type": "video",
"text": "hsi htteqetoswl oklk hnecytduigari ec ihr digsm xr ethr o hsoe(..)Ti swa h usin illo iewe nrpe sn alfnecpe.Adn oeetatx eefrti n G19",
"maxDuration": 180,
"isRatable": true,
"minDuration": 10,
"prepTimeSeconds": 120,
"disableCopyPaste": false,
"secondsElapsed": 0,
"isAnswered": false,
...
Para descifrar la parte del texto con la pregunta, puedes usar https://www.boxentriq.com/code-breaking/rail-fence-cipher. Deberás establecer Rails en 2 y Offset en 0, luego pegar el texto y descifrar. Ten en cuenta que no debes incluir la parte "text": al principio ni la coma al final (partes del formato JSON) y es posible que tengas que eliminar algunos caracteres del final, como la comilla de cierre en el ejemplo anterior.