banner
MoeMagicMango

MoeMagicMango

Seeker, In searching of darkness.
github
steam

My Hackergame 2024 WriteUp | HackerGame 初体験

今年初めてこのような CTF 大会に参加しましたが、自分は下手で、たくさんの問題が解けませんでした awww

でも、今回は参加できてとても楽しかったです!来年も続けて遊べることを願っています aww

チェックイン#

まずはスタートをクリックして、その後は明らかに false を true に変えれば大丈夫です。

image

チェックイン 再び#

問題に従って、中国科学技術大学の CTF チームの新メンバー募集ページを探します。

調べたところ、こちらです https://www.nebuu.la/

ls -all を使うと、2 つ目の.flag が見つかり、cat で表示すれば得られます。

env を使うと、最初の flag が得られます。

flag{0k_175_a_h1dd3n_s3c3rt_f14g___please_join_us_ustc_nebula_anD_two_maJor_requirements_aRe_shown_somewhere_else}
flag{actually_theres_another_flag_here_trY_to_f1nD_1t_y0urself___join_us_ustc_nebula}

小さなヒント: sudo -i を使うと、あるアニメのページに飛ばされます(((

猫の質問(Hackergame 10 周年記念版)#

  1. キーワード「Hackergame 2015」、前日の夜、プレ大会講座

調べると、このページが得られます https://lug.ustc.edu.cn/wiki/sec/contest.html

image

  1. https://lug.ustc.edu.cn/wiki/lug/events/hackergame/ でイベント記録を確認します。

2682 人(2019 年 hg)であることがわかります。

  1. Hackergame 2018 の人気検索ワードが科大図書館の当月の検索 1 位になりました。

この考えは実際に hg 2018 の writeup から得たものです。

https://github.com/ustclug/hackergame2018-writeups/blob/master/misc/others.md

ここに書かれています(

  1. キーワード「USENIX Security」、学術会議、中国科学技術大学 (USTC)、電子メール偽造攻撃

https://www.usenix.org/conference/usenixsecurity24/

conference を調べると、この記事が見つかります。

https://www.usenix.org/conference/usenixsecurity24/presentation/ma-jinrui

全文を読むと 336 であることがわかります。

image

小さなヒント、十数回見てやっと直接書かれていることに気づきました。以前はずっと 6*16 のように計算していました。命がけです。

  1. これは本当に人気があります.png

https://github.com/torvalds/linux/commits/master/MAINTAINERS

Maintainer のコミット記録を見てください。

https://github.com/torvalds/linux/commit/6e90b675cf942e50c70e8394dfb5862975c3b3b2

これでコミット 6e90b67 が得られます。

  1. 大規模言語モデルは入力をトークンに分解して計算を続けます。このウェブページの HTML ソースコードは Meta の Llama 3 70B モデルのトークナイザーによっていくつのトークンに分解されるでしょうか?

特に良いアイデアはありませんが、まずは Liama 3 70B Tokenizer を簡単に検索しました。

https://huggingface.co/meta-llama/Meta-Llama-3-8B/discussions/116

うーん、実行したくないので、これを見つけました。

https://lunary.ai/llama3-tokenizer

手動で実行したところ、1835 が得られました。

しかし、試してみたところ間違っていたので、1840-1820 の間で試してみたところ、1833 が得られました(

flag{@_GOØD_CΛT_1$_the_CA7_Who_CΛn_pΛs5_7HE_QUI2}
flag{TEN_y34rs_OF_ha©keЯ9AM3_ØMede7Øu_w!7h_И3k0_qu!z}

開かない箱#

meshlab をダウンロードしましたが、meshlab で見ました(

終わったら meshlab を閉じて、再度ダウンロードしてスクリーンショットを撮るのが面倒でした(

flag{Dr4W_Us!nG_fR3E_C4D!!w0W}

毎日の論文が多すぎる!#

image

疑問に思い、エディタで xwx を処理しました。

大小王#

何か小猿の計算 for Hackergame 2024

私の方法は比較的簡単です:

      fetch('/submit', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
        },
        body: JSON.stringify({inputs}),
      })

提出によると、彼が送信するのは inputs の配列で、その中には > < という 2 つの文字のリストがあります。

毎回開くたびに、http://202.38.93.141:12122/game にリクエストを送ります。

py スクリプトを書いて、10 秒以内に console submit ([input]) を使えば大丈夫です。

なぜなら、直接 py を使うとデータ異常と言われ、flag がもらえないようです(

with open("test.txt", "r", encoding="utf-8") as file:
    data = json.load(file)

values = list(data["values"])


answers = []
for data in values:
    if data[0] > data[1]:
        answers.append('>')
    elif data[0] < data[1]:
        answers.append('<')
    else:
        print("新しいエラーを投げる?")
        
print(answers)

PaoluGPT#

どうやってやったのか分かりませんが、確かに得られました(

1' or contents like '%flag%'

本来はこれを注入するつもりでしたが、何らかの理由で 2 つ目が漏れてしまうようです。

flag{zU1_xiA0_de_11m_Pa0lule!!!_73a5cee3f9}
flag{enJ0y_y0uR_Sq1_&_1_would_xiaZHOU_hUI_guo_657f7eaad1}

考え込んで、自分が以前書いたコードもこうやって注入できることに気づきました(怖い

旅行の写真 4.0#

年に一度の検索エンジンの大法題(

  1. 問題 1-2

1 題はサボって、直接北キャンパス南門 xxx を試しましたが、いくつか試して通過しました。

2 題は直接 bilibili で検索すれば大丈夫です、すぐに見つかります x

  1. 問題 3-4

3 は明らかに、ゴミ箱に「六安園林」というマークがあります。

六安の公園をいくつか検索すれば大丈夫です。具体的な場所は忘れました。

4 は直接 Google レンズで得られました。

https://m.ytszg.com/article/hubei/a10965.html

長江三峡壇子岭景区

5 は百度で画像を検索し、bilibili のこの動画を見つけました。

比較して、最終的に積水潭病院にたどり着きました。

6 Google レンズの最初はこのウェブサイトです。

https://www.china-emu.cn/Trains/Model/detail-26012-201-F.html

解決しました x

幅の狭い幅広文字#

UTF 16 LE -> UTF 8

UTF16LE を UTF8 の方法で読み取ります。

Z:/TheFlag を取得します。

最終的にはこれ => 㩚瑜敨汦条

しかし、終了させる必要があるので、/0 のようなものを追加して停止させる必要があります。

考えた結果、空白を打ち込んで通過しました。

flag{wider_char_isnt_so_great_e2ed6a125e}

Node.js は Web スケール#

// GET /api/store - 現在のKVストアを取得
app.get("/api/store", (req, res) => {
  res.json(store);
});

// POST /set - ストアにキーと値のペアを設定
app.post("/set", (req, res) => {
  const { key, value } = req.body;

  const keys = key.split(".");
  let current = store;

  for (let i = 0; i < keys.length - 1; i++) {
    const key = keys[i];
    if (!current[key]) {
      current[key] = {};
    }
    current = current[key];
  }

  // 最後のキーに値を設定
  current[keys[keys.length - 1]] = value;

  res.json({ message: "OK" });
});

うーん?

__proto__.cmd cat /flag 

そして、直接 flag を読み取らせることができます。

image

言葉を惜しむ 3.0#

私は最初の問題しか解けませんでした awa>

何かの規範のようで、各行を 80 文字に強制する必要があります。

それで、各行の長さを読み取るものを書いて、一つずつ調整しました。

image

2 つ目の問題は gzip 圧縮を利用しているようです。なぜなら、

アップロードファイルはLF でも CRLF でも、尾部に単独の改行を追加しても、マッチ結果に影響しないため

しかし、構築できませんでした x

得られない秘密#

最初は、直接

base64 secret > file.txt

512kb なんて、簡単なことです(

その後、qrss を使って極限圧縮できないか考えました。まずはそれを送信しました。

Stream data through multiple series of QR codes

その後、70kb の単一ファイルにパッケージ化し、送信しました。4、5 回ほどでほぼ完成しました。

送信方法は Pyautogui を使用し、コードは以下の通りです。

import time
import pyautogui

with open('hash.txt', 'r', encoding='utf-8') as file:
    content = file.read()

time.sleep(10)
pyautogui.typewrite(content, interval=0.0001) 

私がゼロから独りで balbalabala について話すのはさておき#

その後、彼が比較するものであることを見て、何か wordle の強化版 英専生狂喜

In the grand hall of Hackergame 2024, where the walls are lined with screens showing the latest exploits from the cyber world, contestants gathered in a frenzy, their eyes glued to the virtual exploits. The atmosphere was electric, with the smell of freshly brewed coffee mingling with the scent of burnt Ethernet cables. As the first challenge was announced, a team of hackers, dressed in lab coats and carrying laptops, sprinted to the nearest server room, their faces a mix of excitement and determination. The game was on, and the stakes were high, with the ultimate prize being a golden trophy and the bragging rights to say they were the best at cracking codes and hacking systems in the land of the rising sun.

原文はこれです。

最後に#

今回は本当に楽しく遊びました、本当に下手でした、来年また遊びに来ますね。

この記事は Mix Space によって xLog に同期更新されました。原始リンクは https://lemonkoi.one/posts/tech/hackergame-2024-exp

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