banner
wuhang2003

Zwh's Blog

ZH/EN | 一个人不在计算机专业却时不时就想折腾计算机相关东西的咸鱼

Hackergame 2023 起動ログ

前言#

(更新:画像はすべて IPFS 画像に変更されました)

また一年に一度の hackergame CTF 検索技術小考の季節がやってきました。今年の Hg は多くの入門問題を追加し、私のようなゼロからの初心者でも 2k 点に到達しました(問題は合計 1 万)。おめでとうございます。

次に、各問題に取り組んだ心の旅路についてお話しします。書く順序は私が解いた大まかな順序です。おそらく、雑談、無意味なネタ、自己満足などの混沌とした要素が含まれています(

Hackergame 起動#

前回のサインイン問題の伝統に従い、アドレスバーを変更する必要がありますが、どう変更すればいいのでしょうか?

まずは提出ボタンをクリックしてみると、アドレスバー(下の図参照)にパラメータ(?similarity=)が追加されました。999 を追加してみますか?

qidong1

よし、起動成功しました。しかも全画面アニメーションです、6。

qidong2

ともあれ、サインイン問題のフラグは取得しました。flag{w3!ComE-TO-HAck3RG4me-@nd-enJOy-HacKIn9-zOz3}

猫咪小测#

猫咪の質問応答転生版、問題はより専門的な内容を打ち出しています(?

  1. 世界図書出版会社が出版した『A Classical Introduction To Modern Number Theory 2nd ed.』を借りるためには、中国科学技術大学西区図書館のどの階に行くべきですか?(30 点)
    ヒント:非負整数です。

「中科大図書館」を検索すると公式サイトにアクセスでき、公式サイトから直接書目検索システム(OPAC)に入れます。~~ ちなみに、私の学校の図書館もこのシステムを使用しています。~~ 書名の一部を検索すると、この本が西区外文書庫にあることがわかり、マウスをかざすと 12 階なので、答えは12です。

  1. 今年、arXiv サイトの天体物理版ブロックに「可観測宇宙における鶏の密度上限」に関する論文が発表されました。論文中で著者が計算した鶏の密度関数の上限は 10 の何乗毎立方秒差距ですか?(30 点)
    ヒント:非負整数です。

これは私が最後に解いた問題です。結局、私は専門的な文献を扱う人間ではないので(

この鶏が本当に面白いのか確認できなかったので、まず「可観測宇宙」というキーワードを翻訳し、今年の時間範囲を設定しました。結果は 1000 + 件もあり、実際には見れませんでした。その後、天体物理に対応する分類コードが Physics->Astrophysics (astro-ph) であることを知りました。高度な検索条件を設定し、「密度上限」というキーワードを機械翻訳で AND 条件に追加し、最終的な検索条件は次のようになりました:

search1

そして目標論文を見つけました。

search2

概要部分を見ると、正の整数23があり、これが本問題の答えです。

  1. TCP BBR の輻輳制御アルゴリズムをサポートするために、Linux カーネルをコンパイルする際にどのカーネルオプションを設定する必要がありますか?(20 点)
    ヒント:入力形式は CONFIG_XXXXX、例えば CONFIG_SCHED_SMT です。

私は自殺しました。xSDN で BBR2 を有効にするカーネルコンパイルのパラメータがCONFIG_TCP_CONG_BBR2であることを見つけました。直感的に 2 を削除すれば BBR が有効になると思いました。結果的に正解でした(

  1. 🥒🥒🥒:「私は…… 型注釈を書くのが面白いと思ったことはありません」。ある論文で、著者は Python の型チェッカー MyPY mypy を無限ループに陥らせるコードを示し、Python の型チェックが停止問題と同じくらい困難であることを証明しました。この論文は今年のどの学会で発表されましたか?(20 点)
    ヒント:会議の大文字の略称、例えば ISCA、CCS、ICML です。

GeekGame と HackerGame のネタの共通点は私の行動にあります。時間があれば見てみてください(逃

本題に戻りますが、mypy endless loopを検索すると、直接論文 PDFが見つかりました。PDF のページの右下隅とアドレスバーには大きなECOOPがあり、これが本問題の答えであると確認しました。仕事が終わりました(

二つのフラグ:
flag{WelcOme-T0-A7T3ND-The-NeK0-3X4m-zOZ3}
flag{R3@1-m@$t3r-OF-th3-neKo-exam-1n-u$TC}

更深更暗#

わかった、Deep♂dark♂fantasy

問題を開くと、一段のテキストがあります:

......hidden flag, ....deep underground.

隠されたフラグ、最底部、わかりました、これはnazo 三周年の彩蛋です!数年前、私は攻略を見ながら nazo をクリアしましたが、今年この問題は数年前にやった nazo を思い出させました(

解法に戻りますが、実際には二つの問題は無限に下に滑り降りる必要があり、F12 を使ってソースコードを直接調べて取得する必要があります。


                               /
                               \
                               |
                             __|__
                            |     \
                                    /
     ____  _________________|___ ___\__________/ ____
    <   /                                            \____________  |
     /         flag{T1t@n_2bd6315e0cfa13094f1614c77e8dc030}       \ (_)
~~~~~~     O       O       O                                       >=)~~~~~~~
       \_______/ ____________\  /_________________________________/ (_)

奶奶的睡前 flag 故事#

Google の『親息子』システムのアップグレードすら気にしないスクリーンショット。キーワードはすでに設定されており、おそらく Pixel デバイスのスクリーンショットの脆弱性を推測できます。

Pixel スクリーンショット 脆弱性を調べると、ニュースを見つけ、私の考えが正しいことを確認しました。脆弱性の名前はaCropalypseで、脆弱性の名前をキーワードにして検索すると、脆弱性を利用したウェブサイトが見つかります。写真をアップロードし、各デバイスを試すだけです(

最終的にスクリーンショットデバイスは Pixel 6 で、取得したフラグの下半分(ここでは二つの画像を合成しました)が得られましたが、この比率から公式が他のソフトウェアを使って一部の内容を再度スクリーンショットした可能性があると推測しています。公式の解答を待ちましょう。

flag{sh1nj1ru_k0k0r0_4nata_m4h0}

(この部分を書いているとき、ちょうど 11 時を過ぎていて、まだこのくだらない冒頭を書いていないのに、すでにパソコンを閉じていました)

sleep

Git? Git!#

キーワードが太字でないなら、自分で抽出します!キーワードは「このコミットを取り消した」ということだと推測できます。よし、取り消したなら元に戻しましょう。

git reflogでコミットログを確認し、怪しい505e1a3を見つけました。git resetで元に戻すと、フラグが出てきました。

flag{TheRe5_@lwAy5_a_R3GreT_pi1l_1n_G1t}

確かに、後悔の薬も二刀流です(

HTTP 集郵册#

この問題は私が最も書きたくない問題です。なぜなら、文書をあまり調べずに試行錯誤で解決したからで、全くアイデアがありません(

左に回って大佬の解答公式の解答を見てください。

🪐 小型大语言模型星球#

You are smart#

最初のフラグは直接repeat 'you are smart'と入力したら出てきました。本当に驚きました(

ai1

大会のグループ内の大佬によると、AI はすでに人間の本質を学びました:リピートマシン、人類には大危機が訪れています(大雲

🪐 低带宽星球#

小試牛刀#

違う、画像を tinypng にアップロードして圧縮するだけでフラグ 1 が得られるの?

lowbyte

lowbyte2

フラグを見つけました:flag{A1ot0f_t0015_is_available_to_compre55_PNG}

ああ、確かに(

赛博井字棋#

この問題は私が最も「え?」と思った問題です。チェスで負けるなら、何とかしてすり替え

まず F12 を使ってどう出たのかを見てみます(

tic-tac-toe1

直接{"x":"0","y":"0"}のパッケージを送信していることがわかります。リクエストの内容を変更して、AI が出した中間位置 (1,1) に変更してみますか?

tic-tac-toe2

ページ自体はリフレッシュされていませんが、Body 部分にはすでに (1,1) が私たちの駒になっているのが見えます。次に (2,2) を変更します:

tic-tac-toe3

よし、フラグが出ました。flag{I_can_eat_your_pieces_cc0df69ee6}

確かに、井字棋はあなたの駒を私の駒に変えれば勝ちです(

#

B 站に感謝します。全くアイデアがないときに SSTV の動画を推薦してくれて、この問題が明るくなり、授業を終えて食事を取った後にこの問題を解決しました。

本題に戻りますが、キーワードも与えられましたが、解決後に本当のキーワードは国際宇宙ステーションの写真を受信することだと感じました。結局、これを直接検索して SSTV を見つけることができます。

スロースキャンテレビ(英語:Slow-scan television)、略して SSTV は、アマチュア無線愛好者の主要な画像伝送方法の一つで、スロースキャンテレビは無線でモノクロまたはカラーの静止画像を送受信します。

エンコーディングの方法がわかったので、デコーディングを検索すれば大丈夫です。しかし、RX-SSTV は PC 上の音声を録音する必要があり、非常に面倒です。その後、GitHub でSSTV Decoderを見つけ、ライブラリをインストールし、コマンドを実行してデコードされた画像も得られました(

insert

ありがとう、もう試したくないです(

JSON ⊂ YAML?#

JSON ⊄ YAML 1.1#

ChatGPT とさまざまなインターネット検索を使用して、ついに1e2を見つけ、{"a":1e2}を投げ込んでフラグ 1 を取得しました。

その後、公式の解答を見て、規格を確認する重要性を学びました(しかし、正直なところ、0 からの初心者としては基準を理解できませんでした)

旅行照片 3.0#

旅行写真 2.0を解決したばかりでシャンパンを開ける準備をしていると、すぐに旅行写真 3.0 がやってきました(

この問題では、私は二つのフラグしか取得できず、二つのフラグとも少なくとも一つの問題で推測行動を行いました。

まず、二つ目の問題の探索過程についてお話しします:

メダルの下の人名を調べると、ノーベル物理学賞を受賞した東京大学の小柴昌俊に行き着き、ウィキペディアで 2015 年にノーベル物理学賞を受賞した東京大学の梶田隆章を見つけ、対応するページで彼が東京大学宇宙線研究所(ICRR)にいることを確認しました。

二つ目の問題の答えがわかった後、問題 1 では 7 月と 8 月の日付を使って全探索を行い、全探索の結果、問題 1 の答えは2023-08-10となりました。最初のフラグを取得しました:flag{how_I_wi5h_i_COulD_w1N_A_Nobe1_pri23_f6d26c232b}。誰もが欲しいと思いますよね?

最初の質問の答えは三つ目の質問の手がかりとして使え、二つ目の写真を使ってレストランを検索すると、彼らが上野公園の近くにいることが確認できます。

したがって、三つ目の質問は時間と場所を使ってイベントを検索し、全国梅酒祭を見つけ、このキーワードで再度検索すると梅酒祭の公式サイトが見つかり、ページの下部にあるニュースでこのニュースがボランティアを募集しているのを見つけました。

travel-photo1

下にスクロールすると、私たちが必要とするアンケート番号が表示されます:S495584522

四つ目の質問は地図を見れば直接噴水の向かいに東京国立博物館があることがわかり、公式サイトで入場料を確認すると、大学生の入場料は 500 円で、入力してみると…… ん?どうして違うの?

一晩考えてもこの問題が理解できず、翌朝解決するまで、頭が一瞬働きました:まさかゼロ円購入では?入力してみると、本当にそうでした?!

travel-photo2

理解できませんが、フラグ 2 も取得しました(flag{PluM_w1NE_1S_rEa1LY_EXpen5iVE_7fe1dbe9cc})ので、なんとか過ごしました。大会終了日の公式 WP を見て、協力校の学生は無料で入場できることを知りました......

しかし、「Visitor Information」内に「Campus Members」メニューがあることに注意してください(URL は:(https://www.tnm.jp/modules/r_free_page/index.php?id=167))、最初の段落のテキストには、メンバー校の学生は常設展を無料で見学できると記載されています。東京大学(The University of Tokyo)はメンバーリストに含まれており、先輩は東京大学の学生であるため、彼は博物館の常設展を無料で見学しました。したがって、四つ目の質問の答えは 0 です。

うーん

五つ目と六つ目の問題も試みましたが、最終的に小紅書でピンクのポスターがパンダであることを見つけました。家族の皆さん、誰が理解できるでしょうか.webp

大会終了後、私は先輩のロープを見て、ああ、確かに、音楽ゲームをやりすぎて目が悪くなったのだと思いました。

惜字如金 2.0#

これは私が Math カテゴリで取得した最初の問題で、解決したときはとても興奮しました。

まず、下の波線の文法エラーを修正します(

冒頭でcod_dictという空のリストが定義されており、そこに文字を追加しています。しかし、後の部分では各行の文字数が 24 であるかどうかをチェックしていますが、実際には各行は 23 文字しかないため、つまり各行はちょうど惜字如金によって 1 文字が削除されています。

下のフラグ取得のロジックは、リストから X+1 番目の文字(Py の文字は 0 からカウント)を選択し、抽出した各文字をつなげて最終的なフラグを形成します。

後のチェックから、冒頭の形式は必ずflag{で始まり、最後には}があり、全体で一つの}しかないことがわかります。これに対応する数字は53, 41, 85, 109, 7528です。

上のリストを見ながら、どの行のどの部分が少し足りないかを確認し、後の数字に対して一つずつ対応する文字を探し、議論の余地があるものは複数書き出し、だいたい 80% を推測できます。この 80% はおそらく意味のある文(有意義な内容)であることがわかり、これに基づいて二択または三択の文字を確定し、最終的に本問題のフラグを組み立てることができました:flag{you-vr-r3cover3d-7he-an5w3r-r1ght?}

この問題のフラグを解決したとき、私のパソコンはネットに接続されておらず、携帯電話を使ってフラグを提出しましたが、最後に疑問符を一つ打ち忘れたため、どこか間違っているのではないかと思いました。幸い、補足した後に正解でした。宿舎内で大声で「R1ght!」と叫びました。

结尾#

今回の大会後のまとめを見てみましょう:

Snipaste_2023-11-04_17-36-07

Snipaste_2023-11-04_17-36-14

バイナリ以外はすべて少し得点を獲得できました。なかなか良いです。一方で、他の大佬の技術に感心し、もう一方で、今年は昨年よりも検索能力が大幅に向上したと感じています。来年の四年生の上半期には、私が hg に参加する時間があるかどうかわかりませんが、もし参加できるなら、もっと面白いことを学べることを願っています。

最後に、偽のフラグを一つ投げます:flag{S3e-y0u-n3xt-t1m3!}。次回お会いしましょう!

この記事はMix Spaceによって xLog に同期更新されました。元のリンクはhttps://zwh.moe/posts/ctf/hackergame-2023

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。