
CVE-2022-37177 - HireVue-Broken-Or-Risky-Cryptographic-Algorithm
Quando si visita il link di invito al colloquio che HireVue fornisce per un colloquio, si viene indirizzati a una pagina con i termini, in cui si accettano i termini prima di iniziare il processo di colloquio registrato e a tempo. Questa risposta HTTP iniziale include le domande del colloquio che verranno poste durante il colloquio, codificate utilizzando un cifrario a transposizione ferroviaria (rail fence cipher). Questo può essere facilmente decifrato, fornendo accesso a tutte le domande del colloquio prima di iniziare effettivamente il processo. Se non accetti i termini, il colloquio non inizia, quindi puoi visitare il link e poi andartene quante volte vuoi finché non accetti di iniziare il colloquio. I clienti di HireVue non si aspettano che le domande del colloquio siano note prima dell'inizio del colloquio, e il tentativo di nasconderle usando un cifrario a transposizione ferroviaria esiste, ma è una forma debole di crittografia.
Puoi anche raccogliere altre informazioni da questa risposta HTTP in testo semplice, come il numero di domande, il tempo massimo per rispondere a ogni domanda in secondi, il numero di tentativi disponibili, il tempo di preparazione prima dell'inizio della registrazione, ecc.
Risposta iniziale da: hiring-org-subdomain.hirevue.com/interviews/interview-ID. Dovrai individuare la sezione chiamata questions che contiene le domande cifrate in formato JSON. Le domande si trovano nel campo text. La risposta sarà simile alla porzione di risposta HTTP mostrata di seguito.
...
"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,
...
Per decifrare la parte di testo con la domanda puoi usare https://www.boxentriq.com/code-breaking/rail-fence-cipher. Dovrai impostare Rails su 2 e Offset su 0, quindi incollare il testo e decifrare. Nota che non devi includere la parte "text": all'inizio né la virgola alla fine (parti del formato JSON) e potrebbe essere necessario eliminare alcuni caratteri alla fine, come la virgoletta finale nell'esempio sopra.