2023 HITCON CTF Final

這次和大多沒見過的各大學大大組團打 HITCON CTF,初賽因為前面的人跑去出 Final,順位讓我們可以進 Final

再次鞭屍 @asef18766

by asef18766

依稀記得隊名是來自各個 Lab 的簡稱,經過錯序再加上 ab ,然後就沒一個人會念這坨,好像是某個生物激素的樣子

決賽主題是 Capture The Fans,場地很酷,有躺椅和懶骨頭,可惜離電源和網路線太遠不好用。主辦方竟然沒有人偶像服,差評。

More Smoked Leet Chicken 整隊戴雞頭, Kiwawa 戴小丑爆炸頭, respect!@as535364 說好穿女裝沒穿,wii 都願意提供了(

超好看的 badge

很棒的禮物包

我這次幾乎都在弄 PSP 那題,題目是一個類似 PHP 的語言 PSP寫成的 note 服務,可以給偶像加油打氣留言,服務透過 Node.js 寫的解析器來跑 PSP,所以沒意外會有 PSP 解析洞可以直接控 Node.js 那層。

以我上次 EOF A&D 的經驗,我都在搞攻擊沒人弄 Patch 導致第一天失分慘重,沒人弄 Patch 就不會有人弄,剛好這次賽制是每輪釋出攻擊流量,攻擊基本上就抄別人的就好;Patch 則是第二天開始才會每輪釋出,現在強隊大概都知道 Patch 最終都是混淆埋後門,讓別人抄也至少送一分。所以這次我著重在搞 Patch,畢竟這題要用 PSP 那麼棒的語言,應該很少有隊伍會想搞。

策略上大概是對的,執行上遇到不少問題。

首先是主辦方一開始沒對 A&D 加以限制,開題不久後所有題目機就被 DoS 搞掛了,再加上不知道為什麼題目使用的 xinitd 在 docker 裡有 bug 服務起不來,而且在我們的 attack manager 上從頭搞環境時遇到 DNS 不知為何超慢的問題,後來 @as535364  和 @asef18766 弄了幾小時終於把服務架起來,在前兩三個小時只能靜態看那坨 PSP。

我還在看 PSP 時交代給 Charlie 抄攻擊,當時封包記錄下來流行的攻擊是很簡單的 Path Traversal,只是我們沒有任何服務能驗證他是可行的攻擊,所以直到題目機穩定前都沒有人開發 exploit。

在第一天結束前幾小時才寫出 path traversal exploit, 直接被 Kiwawa 虐了幾百分,賽後他們說第一天只是抄攻擊流量,第二天就沒看這題...

第一天上 Patch 的黃金時間已過,這題 Patch 本身難上好繞,因此需要想個策略去上,翻了一下發現規則有漏洞

Do not attempt to bypass service check or patch penalty in any ways. Consult organizers when in doubt.

如果我的目標是讓 patch invisible for player ,我可以同時滿足沒有 bypass service check and patch penalty,那好像只要每次更新 patch 時主動去觸發 Patch penalty 就不違反這規則 XD

實作上就是用 RCE 洞去下載一次自己的 Patch 後載入,因為他是 PSP

盧主辦方
繼續盧XD

最後主辦方是把 Patch 會被公開也加入到 Patch Penalty 裡來解這個規則 bug XD

其實會盧是因為還沒找到方法完整控 Node.js,能控 Node.js 就是老套路混淆+後門,給你抄但是我至少可以打你。要用 PSP 寫個基本條件過濾字串的 WAF 就花我幾個小時 debug, Token 間的空白會影響解析結果,行為還不一致,debug 結果就是有些可以空白有些不行...

那時大概是知道有 class 和 fmt 兩個可以控 Node.js,我這邊還沒有空研究詳細 exploit,就丟給 Sun 大大開發,開發成功後開始穩定拿分
<(_ _)>

後續 Patch 系統本身也出現很多 bug,像是好幾輪前已經 Patch 成功的東西丟上去會失敗,丟別隊 Patch 會失敗,因為某輪開始主辦方改了 service check,導致 Patch 成功判定變成很隨機的樣子。直到第二天下午才終於成功上了基本的 Patch。

結果這題被 Kiwawa 虐超過五百分的樣子QQ

這大概就是為啥 PM 不要跳下去寫 code,都在忙 patch 太晚找人寫 exploit

賽後找喵喵討論,才發現還有很多梗是所有隊伍都沒發現的,像是PSP 沒有註解存在、所有字串都可以做 Function call 很 PHP

原本對 PSP 生氣氣花兩天打了個空氣就忽然覺得他好棒有梗,只是 infra 太炸埋沒了它

第七

最後幾輪看到 Kiwawa 快追上,差點一群老人就被虐了,好強...

拿到 Taiwan Star $1,000 :D

這次 HITCON Carnival 整題視覺設計超棒,真的好想把 CTF 和活動錯開一點時間讓選手也能逛逛。不知道有沒有出周邊欸,好想買那隻喵喵玩偶、帽子和貼紙