
CVE-2022-37177 - HireVue-Broken-Or-Risky-Cryptographic-Algorithm
عند زيارة رابط دعوة المقابلة الذي توفره HireVue للمقابلة، يتم توجيهك إلى صفحة الشروط حيث توافق على الشروط قبل بدء عملية المقابلة المسجلة والمحددة زمنياً. تتضمن هذه الاستجابة HTTP الأولية أسئلة المقابلة التي سيتم طرحها أثناء المقابلة، وهي مشفرة باستخدام تشفير السياج السككي (rail fence cipher). يمكن فك تشفيرها بسهولة مما يوفر الوصول إلى جميع أسئلة المقابلة قبل البدء الفعلي للعملية. إذا لم توافق على الشروط، فلن تبدأ المقابلة، لذا يمكنك زيارة الرابط ثم المغادرة بقدر ما تريد حتى توافق على بدء المقابلة. لا يتوقع عملاء HireVue أن تكون أسئلة المقابلة معروفة قبل بدء المقابلة، ومحاولة إخفائها باستخدام تشفير السياج السككي موجودة لكنها شكل ضعيف من التشفير.
يمكنك أيضًا جمع معلومات أخرى من هذه الاستجابة HTTP بنص عادي مثل عدد الأسئلة، الحد الأقصى للوقت للإجابة على كل سؤال بالثواني، عدد المحاولات المتاحة، وقت التحضير قبل بدء التسجيل، إلخ.
الاستجابة الأولية من: hiring-org-subdomain.hirevue.com/interviews/interview-ID. ستحتاج إلى تحديد القسم المسمى questions الذي يحتوي على الأسئلة المشفرة بتنسيق JSON. ستكون الأسئلة موجودة في الحقل text. سيبدو مشابهاً للجزء التالي من استجابة HTTP أدناه.
...
"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,
...
لفك تشفير الجزء النصي الذي يحتوي على السؤال، يمكنك استخدام https://www.boxentriq.com/code-breaking/rail-fence-cipher. ستحتاج إلى ضبط عدد القضبان (Rails) إلى 2 و الإزاحة (Offset) إلى 0 ثم لصق النص وفك التشفير. لاحظ أنك لا تريد تضمين الجزء "text": في البداية أو الفاصلة في النهاية (أجزاء من تنسيق JSON) وقد تحتاج إلى حذف بعض الأحرف من النهاية مثل علامة الاقتباس في المثال أعلاه.