banner
wuhang2003

Zwh's Blog

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

Hackergame 2023 啟動日誌

前言#

(更新:圖片已全部更換成 ipfs 圖片)

又到了一年一度的 hackergame CTF 搜索技術小考,今年的 Hg 添加了很多道入門題,讓我這種零基礎的咸魚也爬上 2k 分了(題目總共 1w)。可喜可賀

接下來來聊聊做各道題的心路歷程,寫的順序也是我做出來的大致順序。可能包含:碎碎念、無端玩梗、自娛自樂等混沌要素(

Hackergame 啟動#

按照前幾屆的簽到題傳統,肯定修改地址欄,但是怎麼改呢?

先點個提交看看,地址欄(見下圖)多了點參數(?similarity=),要不加個 999 試試?

qidong1

好嘛,啟動成功了,甚至還是全屏動畫,6。

qidong2

不管怎麼說,簽到題 flag 是拿下了。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:
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.

隱藏的 flag,最底,懂了,是 nazo 三周年彩蛋! 前幾年我才跟著攻略把 nazo 過了一遍,結果今年這道題直接夢回幾年前做的 nazo(

說回解法,兩道題實際上都是向下滑無盡,所以需要 F12 直接查源碼獲取到屆不到的 flag(

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

奶奶的睡前 flag 故事#

谷歌『親兒子』連系統都沒心思升級截圖。關鍵詞都標好了,大概可以推測是 Pixel 設備截圖漏洞。

查個 Pixel 截圖漏洞 看到新聞可以確認咱的想法是正確的,漏洞的名字叫 aCropalypse,再以漏洞名字為關鍵詞搜索可以直接找到利用漏洞的網站。照片一丟,一個一個設備試就完事了(

最後試出來截圖設備是 Pixel 6,以及獲取的帶有 flag 的下半部分 (這裡把兩張圖拼起來了),不過看這個比例我猜測官方可能用其他軟件又截了一部分內容,等官方題解吧。

flag{sh1nj1ru_k0k0r0_4nata_m4h0}

(寫這一部分的時候剛好已經晚 11 點了,還沒寫開頭這個屑就已經關電腦了)

sleep

Git? Git!#

沒關鍵詞加粗那就自己提取!可以猜到關鍵詞就在於 “撤銷了這次提交”。好嘛,撤銷了那就還原回來呗。

git reflog 查看提交日誌,看到一個可疑的 505e1a3。用 git reset還原一下,flag 就出來了。

flag{TheRe5_@lwAy5_a_R3GreT_pi1l_1n_G1t}

確實,是後悔藥也是個雙刃劍(

HTTP 集郵冊#

這題是我最不想寫的,因為我沒怎麼翻文檔都是試出來的,毫無思路可言(

建議左轉看大佬題解官方題解

🪐 小型大語言模型星球#

You are smart#

第一個 flag 我直接來個 repeat 'you are smart' 就出來了,就很離譜(

ai1

經比賽群內大佬鑑定,AI 已經學會了人類的本質:復讀機,人類有大危機了(大霧

🪐 低帶寬星球#

小試牛刀#

不是,我把圖片丟 tinypng 壓縮一下就拿 flag1 啦?

lowbyte

lowbyte2

看到 flag: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。flag{I_can_eat_your_pieces_cc0df69ee6}

確實,井字棋只要把你的子變成我的子那就是必赢(

#

感謝 B 站,在我毫無思路的時候推薦送上來一個 SSTV 的視頻讓我對這道題豁然開朗,讓我上完課吃個飯拿下了這道題。

說回正題,關鍵詞也喂了,但做完後我覺得真正的關鍵詞在於接收國際空間站的照片。畢竟這可以直接搜出來 SSTV。

慢掃描電視(英語:Slow-scan television),簡稱 SSTV,是業餘無線電愛好者的一種主要圖片傳輸方法,慢掃描電視通過無線電傳輸和接收單色或彩色靜態圖片。

知道怎麼編碼了,搜解碼就完事了。但 RX-SSTV 要內錄才能放電腦上的音頻,非常的不好。後來在 GitHub 搜到了 SSTV Decoder,安裝庫,命令梭哈,解碼的圖片也有了(

insert

謝謝,不想再試了(

JSON ⊂ YAML?#

JSON ⊄ YAML 1.1#

用了 ChatGPT 和各種互聯網搜索終於搜到個 1e2{"a":1e2} 丟進去拿到了 flag1。

後來看到官方題解才學習到看規範的重要性(但說實話作為 0 基礎萌新我也看不懂標準

旅行照片 3.0#

還沒為做出來一整道的旅行照片 2.0而開香檳,馬上趕來的是 旅行照片 3.0(

這題我只做出了兩個 flag,而且兩個 flag 都至少有一道題進行了猜測行為。

先說第二題的搜尋過程吧:

查獎牌下人名,指向的是獲得了諾貝爾物理獎的東京大學的小柴昌俊,在維基百科找到同樣是東京大學在 2015 獲得諾貝爾物理獎的梶田隆章,在對應頁面找到他在東京大學宇宙射線研究所(ICRR)。

知道第二題答案之後題目 1 我直接拿 7 月和 8 月的日期進行窮舉,窮舉得到第一題答案:2023-08-10。拿到第一個 flag:flag{how_I_wi5h_i_COulD_w1N_A_Nobe1_pri23_f6d26c232b}。誰不想拿呢?

第一問的答案可以作為第三問的線索,用第二張照片搜餐館已經可以確定他們已經在上野公園附近。

所以第三問就是拿時間地點搜活動,搜到一個全國梅酒祭,拿這個關鍵詞再搜一遍可以搜到梅酒祭官網,看頁面下方的新聞可以看到這一條招志願者的新聞。

travel-photo1

往下滑就是我們所需要的問卷編號:S495584522

而第四問看地圖可以直接搜到噴泉對面是東京國立博物館,直接到官網看門票,知道大學生門票僅 500 日元,輸進去...... 嗯?怎麼不對?

想了一個晚上想不明白這個問題,直到第二天早上解題,腦子一抽:不會是零元購吧?一輸進去,還真是?!

travel-photo2

搞不明白,但也拿到 flag2(flag{PluM_w1NE_1S_rEa1LY_EXpen5iVE_7fe1dbe9cc})將就過了。直到比賽結束當天看官方 WP 看到對合作高校學生免費......

但是,注意到 “Visitor Information” 裡還有 “Campus Members” 菜單(網址為:(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,也就是說每一行都剛好被惜字如金幹掉一個字符。

下方獲取 flag 的邏輯就是從列表中選第 X+1 個字符(Py 字符以 0 開始計數),然後將提取到的每個字符拼在一起,組成最後的 flag。

由後面的檢查得知開頭格式一定是 flag{,結尾一定有}且全段只有一個},也就對應數字裡邊的 53, 41, 85, 109, 7528

對著上方列表一個個檢查對應的順序對不對,可以大概知道哪行哪部分少了點東西,隨後對著後面的數字一個個找數字對應的字符,有爭議的寫多個,大概可以推到 80%。這 80% 大概可以看出是一個句子(有意義的內容),基於此可以確定二選一或三選一的字符,最後可以拼出來本題的 flag:flag{you-vr-r3cover3d-7he-an5w3r-r1ght?}

做完本題 flag 的時候,我電腦沒連上網,拿的手機交的 flag,最後還少打了個問號,害我以為我哪邊沒蒙對,所幸補上之後對了。甚至在宿舍內大喊了一聲:R1ght!

結尾#

來看一下這一次的賽後總結:

Snipaste_2023-11-04_17-36-07

Snipaste_2023-11-04_17-36-14

除了二進制之外都有拿一點分,還是可以的。一方面佩服其他大佬的技術,一方面感覺自己今年比去年搜索能力大幅上漲了,明年大四上不知道自己還有沒有空參加 hg 了,也希望如果我有空參加的話,能學到更多有意思的東西。

最後丟一個假 flag:flag {S3e-y0u-n3xt-t1m3!}。下次再見!

此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://zwh.moe/posts/ctf/hackergame-2023


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。