前言#
(更新:圖片已全部更換成 ipfs 圖片)
又到了一年一度的 hackergame CTF 搜索技術小考,今年的 Hg 添加了很多道入門題,讓我這種零基礎的咸魚也爬上 2k 分了(題目總共 1w)。可喜可賀
接下來來聊聊做各道題的心路歷程,寫的順序也是我做出來的大致順序。可能包含:碎碎念、無端玩梗、自娛自樂等混沌要素(
Hackergame 啟動#
按照前幾屆的簽到題傳統,肯定修改地址欄,但是怎麼改呢?
先點個提交看看,地址欄(見下圖)多了點參數(?similarity=
),要不加個 999 試試?
好嘛,啟動成功了,甚至還是全屏動畫,6。
不管怎麼說,簽到題 flag 是拿下了。flag{w3!ComE-TO-HAck3RG4me-@nd-enJOy-HacKIn9-zOz3}
貓咪小測#
貓咪問答轉生版,題目主打一個更加專業(?
- 想要借閱世界圖書出版公司出版的《A Classical Introduction To Modern Number Theory 2nd ed.》,應前往中國科學技術大學西區圖書館的哪一層?(30 分)
提示:是一個非負整數。
搜 “中科大圖書館” 可以進官網,官網可以直接進到書目檢索系統(OPAC)。~~ 順帶一提我校圖書館也在用這個系統。~~ 取書名一部分進行搜索,可以看到這本書在西區外文書庫,鼠標一過,12 層,所以答案為 12
- 今年 arXiv 網站的天體物理版塊上有人發表了一篇關於「可觀測宇宙中的雞的密度上限」的論文,請問論文中作者計算出的雞密度函數的上限為 10 的多少次方每立方秒差距?(30 分)
提示:是一個非負整數。
這是本人最後一道做出來的題目,畢竟我不是專業的文獻狗(
因為我不好確認這個雞是不是整活的,所以我的想法是先翻譯 “可觀測宇宙” 這個關鍵詞,然後設定時間範圍為今年。搜到結果 1000+ 實在看不起。隨後我才知道天體物理對應的分類代號是 Physics->Astrophysics (astro-ph)。高級搜索帶入條件,再把 “密度上限” 這個關鍵詞機翻加入 AND 匹配,最後搜索條件大致如下:
然後搜到了目標文章
看概要部分就一個正整數 23
,確定為本題答案。
- 為了支持 TCP BBR 擁塞控制算法,在編譯 Linux 內核時應該配置好哪一條內核選項?(20 分)
提示:輸入格式為 CONFIG_XXXXX,如 CONFIG_SCHED_SMT。
我自裁,搜 xSDN 搜到內核編譯開 BBR2 的參數為 CONFIG_TCP_CONG_BBR2
,直覺告訴我把 2 去了就是開 BBR 了。結果被我蒙對了(
- 🥒🥒🥒:「我…… 從沒覺得寫類型標註有意思過」。在一篇論文中,作者給出了能讓 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 點了,還沒寫開頭這個屑就已經關電腦了)
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'
就出來了,就很離譜(
經比賽群內大佬鑑定,AI 已經學會了人類的本質:復讀機,人類有大危機了(大霧
🪐 低帶寬星球#
小試牛刀#
不是,我把圖片丟 tinypng 壓縮一下就拿 flag1 啦?
看到 flag:flag{A1ot0f_t0015_is_available_to_compre55_PNG}
啊這,確實(
賽博井字棋#
這題屬於是我最 “啊?” 的一題。下棋下不過肯定得想辦法偷天換日。
先下個用 F12 看看它怎麼出的(
可以看到它是直接發了個 {"x":"0","y":"0"}
的包,嘗試一下修改請求的內容,改成 AI 出的中間位置 (1,1) 看看?
由於頁面本身沒刷新,但看 Body 部分已經看到 (1,1) 部分成了我們的棋。接下來再改一個 (2,2) :
好好好拿下,出了 flag。flag{I_can_eat_your_pieces_cc0df69ee6}
確實,井字棋只要把你的子變成我的子那就是必赢(
虫#
感謝 B 站,在我毫無思路的時候推薦送上來一個 SSTV 的視頻讓我對這道題豁然開朗,讓我上完課吃個飯拿下了這道題。
說回正題,關鍵詞也喂了,但做完後我覺得真正的關鍵詞在於接收國際空間站的照片。畢竟這可以直接搜出來 SSTV。
慢掃描電視(英語:Slow-scan television),簡稱 SSTV,是業餘無線電愛好者的一種主要圖片傳輸方法,慢掃描電視通過無線電傳輸和接收單色或彩色靜態圖片。
知道怎麼編碼了,搜解碼就完事了。但 RX-SSTV 要內錄才能放電腦上的音頻,非常的不好。後來在 GitHub 搜到了 SSTV Decoder,安裝庫,命令梭哈,解碼的圖片也有了(
謝謝,不想再試了(
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}
。誰不想拿呢?
第一問的答案可以作為第三問的線索,用第二張照片搜餐館已經可以確定他們已經在上野公園附近。
所以第三問就是拿時間地點搜活動,搜到一個全國梅酒祭
,拿這個關鍵詞再搜一遍可以搜到梅酒祭官網,看頁面下方的新聞可以看到這一條招志願者的新聞。
往下滑就是我們所需要的問卷編號:S495584522
而第四問看地圖可以直接搜到噴泉對面是東京國立博物館,直接到官網看門票,知道大學生門票僅 500 日元,輸進去...... 嗯?怎麼不對?
想了一個晚上想不明白這個問題,直到第二天早上解題,腦子一抽:不會是零元購吧?一輸進去,還真是?!
搞不明白,但也拿到 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, 75
和 28
。
對著上方列表一個個檢查對應的順序對不對,可以大概知道哪行哪部分少了點東西,隨後對著後面的數字一個個找數字對應的字符,有爭議的寫多個,大概可以推到 80%。這 80% 大概可以看出是一個句子(有意義的內容),基於此可以確定二選一或三選一的字符,最後可以拼出來本題的 flag:flag{you-vr-r3cover3d-7he-an5w3r-r1ght?}
。
做完本題 flag 的時候,我電腦沒連上網,拿的手機交的 flag,最後還少打了個問號,害我以為我哪邊沒蒙對,所幸補上之後對了。甚至在宿舍內大喊了一聲:R1ght!
結尾#
來看一下這一次的賽後總結:
除了二進制之外都有拿一點分,還是可以的。一方面佩服其他大佬的技術,一方面感覺自己今年比去年搜索能力大幅上漲了,明年大四上不知道自己還有沒有空參加 hg 了,也希望如果我有空參加的話,能學到更多有意思的東西。
最後丟一個假 flag:flag {S3e-y0u-n3xt-t1m3!}。下次再見!
此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://zwh.moe/posts/ctf/hackergame-2023