
CVE-2022-37177 - HireVue-Broken-Or-Risky-Cryptographic-Algorithm
Wenn Sie den Interview-Einladungslink besuchen, den HireVue für ein Interview bereitstellt, werden Sie auf eine Seite mit den Bedingungen weitergeleitet, auf der Sie den Bedingungen zustimmen, bevor der aufgezeichnete und zeitlich begrenzte Interviewprozess beginnt. Diese erste HTTP-Antwort enthält die Interviewfragen, die während des Interviews gestellt werden, verschlüsselt mit einer Rail-Fence-Chiffre. Diese ist leicht zu entschlüsseln, wodurch Sie Zugriff auf alle Interviewfragen erhalten, bevor Sie den Prozess tatsächlich starten. Wenn Sie den Bedingungen nicht zustimmen, beginnt das Interview nicht. Sie können den Link also beliebig oft besuchen und wieder verlassen, bis Sie der Zustimmung zum Start des Interviews zustimmen. Die Kunden von HireVue erwarten nicht, dass die Interviewfragen vor Beginn des Interviews bekannt sind, und der Versuch, sie mit einer Rail-Fence-Chiffre zu verstecken, ist zwar vorhanden, stellt aber eine schwache Form der Verschlüsselung dar.
Sie können aus dieser HTTP-Antwort auch andere Informationen im Klartext abrufen, z. B. die Anzahl der Fragen, die maximale Antwortzeit pro Frage in Sekunden, die Anzahl Ihrer Versuche, die Vorbereitungszeit vor Beginn der Aufnahme usw.
Erste Antwort von: hiring-org-subdomain.hirevue.com/interviews/interview-ID. Sie müssen den Abschnitt namens questions finden, der die verschlüsselten Fragen im JSON-Format enthält. Die Fragen befinden sich im Feld text. Es wird wie der folgende Teil der HTTP-Antwort aussehen.
...
"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,
...
Um den Textteil mit der Frage zu entschlüsseln, können Sie https://www.boxentriq.com/code-breaking/rail-fence-cipher verwenden. Sie sollten die Rails auf 2 und Offset auf 0 setzen, dann den Text einfügen und entschlüsseln. Beachten Sie, dass Sie nicht den Teil "text": am Anfang oder das Komma am Ende (Teile des JSON-Formats) einbeziehen sollten, und Sie müssen möglicherweise einige Zeichen am Ende entfernen, wie z. B. das abschließende Anführungszeichen im obigen Beispiel.