LoginSignup
4
0

これはなに?

会社の方に教えていただいて、面白そうだったのでイベントは終わってますが、挑戦してみようと思います

ローカル環境で実行

コードをDockerで実行します
以下のような画面が表示されました

何をするの?

docker-compose.yamlで渡されている環境変数のFLAGの値を探す問題になります

コードを読んでみる

process.env.FLAGが参照されている箇所は1箇所

main.ts:L21 にあります

  const rank = getRank(score);
  if (rank === 1) {
    return {
      rank,
      message: process.env.FLAG || "fake{fake_flag}",
    };
  } else {
    return {
      rank,
      message: `You got rank ${rank}!`,
    };
  }

どうやらrankが1になればよさそう

解き方とか考え方

問題を作成された方が解説のほうがわかりやすいので、そちらを見たほうがいいです

説明を読んでわからなかった事

0X${"F".repeat(256)}を入力するとなぜいいのか?

21024 - 1、またはおよそ 1.7976931348623157E+308 よりも大きな数値は Infinityになります

Infinity って

グローバルプロパティ Infinity は無限大を表す数値です

POSITIVE_INFINITY を POSITIVE_INFINITY 以外の任意の正の値で割った商は POSITIVE_INFINITY になります。

console.log(Infinity / 10);
> Infinity

だから、ランキング1位になれるんだということがわかりました

最後に

問題を作られた方お疲れ様でした:relaxed:
parseInt(), Numberについて深く知ることができたのと、parseInt()の使い所、気をつける点がわかった気がしました

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0