This article is approximately 18 min read and contains 1607 words.
THJCC CTF Writeup
THJCC-CTF
Welcome
Welcome 0x1
- 標籤上面有一個 FLAG (1/2)
- 規則的最底下又有一個 (2/2)
FLAG : THJCC{5cINt_sC4icT_5C1sT}
Discord 0x1
- 加入 Discord 看到 THJCCBOT 上面有兩段 FLAG (在橫幅跟身分組) (1/3) (3/3)
- (2/3) 在 BOT 的命令 先 ls 再 cat flag.txt 就出來了
FLAG : THJCC{r3meMB3R!J01Ndi5c0rD_5eRv3r}
Web
Empty
- base64 解碼 js 裡的東西加上註解的那個神祕路徑裡面的另一段 FLAG :P
FLAG : THJCC{cookie_&view_source!}
blog
- 觀察一下,是個 blog 的發表介面,然後每個欄位都有地方可以登入
- 原本在那邊 sqli 但是好久都試不出來 qwq
- 最後回去觀察題目
p.s.我好像很粗心的把密碼留在哪裡qwq
- 看到一個疑似 password 的留言
iloveshark
- 把他跟 admin 拿去登入就過了
其實這題我卡超久…
FLAG : THJCC{w31c0me_h@cker}
Simplify
- 先把
test:test1234
拿去登入,然後發現他說我不是 admin
- 觀察一下 cookie 把
test
改成 admin
- 出現其他的東西了! 是個 cat say 然後會根據你 url 後面輸入的東西顯示出來
- 原始碼也有提示 SSTI,去網路找個 payload 送過去就好了
FLAG : THJCC{w3ak_auth_+_S$TI}
🦊🌽
- 這是個會把你的 cookie 拿去 sql 找 row 然後如果你是 admin 就可以回傳 FLAG
- 可以知道我們目標是 sqli 拿到 admin 的權限
- 而主要驗證的地方在這邊
- 可以觀察 rows 有 sqli
- 我們的目標是要 做出像是
password='' or 1=1;--
的效果 ' or 1=1;--
要 bypass “space” ”=” “or”
“space” 可用 /**/ ”=” 可以用大於小於 2>1 “or” 可以用 ”||”
- 拿去 set cookie 就過了 φ(゜▽゜*)♪
FLAG : THJCC{cUt3_wh1e3_f0x_sh1rakam1_fuBuk1_0x133ee79}
Misc
原神帳號外流
- 題目給了一個 pcap 檔,用 wireshark 右鍵 follow TCP Stream 一個一個試密碼就出來了
FLAG : THJCC{W3r3_sHarKKKKKK_MasT3R_C8763}
出題者大合照
- 各種技巧試了一下最後用到 steghide 發現有東西
- 試了一下指令
- passphrase 不用打 直接按 enter
- 就看到有東西寫到 flag.txt
THJCC{S1TC0N_2o2A_a1l_hAnDs0m3_9uY5}
PyJail-0
FLAG : THJCC{Use_M2g1c_f2un3ti0n_in_P9Ja1l!!}
PyJail-1
- 限制了 15 的長度,否則拿去 eval
- 上網找一下資料,找到 這個
FLAG : THJCC{Inp3t_b9p2sss_lim1t_1n+p3j2i1!}
- 這題也不知道是不是預期解 XD
- 我是檢查網頁原始碼然後直接 ctrl + F 找 THJCC
- 往下找看到奇怪的東西
- 解 unicode + 轉換 HTML equivalent 後看到
FLAG : THJCC{Hackkkkthe_google_f0rM_Mordekaiser}
Geoguesser???
題目網址
- 目的是找到圖中的補習班-但洩漏了電話!
- 把電話拿去搜尋即可拿到地址
FLAG : THJCC{35.0039_134.5426}
I want to go to Japan
題目位置
- 這題前面我一直在耍笨,一直以為是飯店就一直填飯店的位置,回去看題目才發現是神社…
- 先去找圖片上女孩的名字,可以發現是在北海道函館那邊
後來找到這個然後去搜尋了附近的神社
找到這個神社
FLAG : THJCC{41.782_140.791}
Crypto
博元婦產科
FLAG : THJCC{wWw.b4BymAk3r.c0M.tW}
Baby RSA
- 其實我不太會 crypto 但這題解的人數太多我就是著解解看
- 最後在網路找到 maple’s blog
- 改一下數字再跑就可以了
FLAG : THJCC{small_eeeee_can_be_pwned_easily}
《SSS.GRIDMAN》
丟程式碼給 GPT 生出解密腳本
FLAG : THJCC{SSS_1s_a_c001_w2y_t0_pr0t3c7_s3c23t}
JPG^PNG=?
- 題目給了 enc.txt 跟 server.py
- 先觀察一下 server.py 怎麼實作的
- 可以看到他拿了 key.png 的前 8 位來做 xor
- 而 xor 可倒推 所以我們只要知道 key 就可以解回去了
- 而每個檔案都有自己的 magic header 根據 這個查表
- 以上就是 png 一開始的東西 剛好是 key 的長度
- 就可以寫個 python 解回去了
Pwn
NC
FLAG : THJCC{N3veR_g0nn4_l37_You_dOwn!!!}
Ret2func
- 有個 win function 直接讓你跳
- 還使用 gets 做 input 所以可以 BOF
- 所以去把 win 的位址找出來再蓋位置就好
我原本是蓋 0x28 個 A 但一直失敗卡了超久,最後暴力試到 segmentation fault 才蓋成功。
Reverse
Baby C
FLAG : THJCC{https://www.youtube.com/watch?v=3XCVM3G3pns}
PYC REVERSE
FLAG : THJCC{pyc_rev3r3e_C3n_u32_on1i5e_t0Ol}
⚾
- 玩了一下,不管怎麼樣都會 homerun
- 往 miss 追一下,看到 會呼叫 flag
- 那我們就直接把程式 patch 成呼叫 miss 就好了
- 這裡我用 IDA 的 patch 直接 call
- 我是直接 patch 上面的那個函式 XD
FLAG : THJCC{u_8e@t_m3…}
Insane
🥒
- 可以讓你上傳檔案,看起來就很不安全,看看他是怎麼實作的
- 可以看到他拿了你傳的檔案直接做了 pickle.load 直接想到了反序列化,還沒擋任何東西,寫個 python 傳上去就可以 RCE 了
exploit
- Hint 有說 reverse shell 彈不回來可以用 curl 但我過了 10 分鐘他還是卡在那邊 XD,所以我自己寫個 sh 讓他下載執行讓他彈回來 :D
Server
Exp
FLAG : THJCC{yumwy_RCe_qr0f!13_p1ckl3_Ou0b}
FFAM(Find Flag Automaticaliiy Machine)
這題感覺是叫我們挖礦
- 簡單來講有 RAM 就可以做更多事,所以我們要想辦法買RAM
來看看他怎麼買 RAM
網站一開始給了個 webshell 但長度只能小於五,還有一堆字都不能用,後來踹到 * 可以選到 ASECRETKEY.txt
的檔名,而執行他可以 leak 出 key,我們就可以任意簽 jwt了
設完後不要重新整理,會被洗掉…被搞了五次才回去看了程式
- 禁掉了一些危險東西,但還有 $() 能用
- 所以像上題一樣我傳 sh 過去 開 reverseshell 就好了!
- 喔對 這邊要分開給,因為有擋
&
FLAG : THJCC{F1nd_F1ag_2ut0m2t1c_mach1n3!!!}