HireVueが提供する面接の招待リンクにアクセスすると、面接の録画・時間制限プロセスを開始する前に同意するための利用規約ページが表示されます。この最初のHTTPレスポンスには、面接中に尋ねられる質問がレールフェンス暗号でエンコードされて含まれています。これは簡単に復号でき、実際にプロセスを開始する前にすべての面接質問を入手できてしまいます。利用規約に同意しなければ面接は開始されないため、面接開始に同意するまで何度でもリンクにアクセスして離脱することができます。HireVueの顧客は、面接前に質問が知られることを想定しておらず、レールフェンス暗号で隠そうとする試みは行われていますが、これは脆弱な暗号化方式です。
また、このHTTPレスポンスからは、質問数、1問あたりの最大回答時間(秒)、試行回数、録画開始前の準備時間など、その他の情報を平文で収集することもできます。
初期レスポンス元: 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形式の一部)は含めないように注意し、末尾の引用符など、例のように一部の文字を削除する必要がある場合もあります。