Before all
Qual: rk.2 / Final: rk.6
今年跟 Orange Fan Club 一起打了 DEFCON CTF!
一開始先感謝所有隊員一同努力/教授及助理們的各種支援以及教育部的全額補助 🥺
作為一個 CTF 選手打到 DEFCON 肯定會在夢想清單上的,而這次比賽也確實帶給了我豐富體驗,也感受到了大團隊不一樣的運作模式和上古神獸前輩們到底有多厲害 T^T
我絕對沒有拖延三個月才寫文章,簡單 log 一下簡短 writeup 和遊紀吧 xD
Quals
一群人在青旅解題目,今年線上是 Jeopardy + KoH + LiveCTF(但似乎依然是 KoH,只是沒有每 round 計分而是分六 rounds 時間比較長而已)
開賽後我到場先和 @bronson113 看了 KoH 題目(因為是密碼題)
今年的 KoH 一樣是比誰對一個問題有最優解
rfc1149b
架構如下,我們能做的是 Full MitM
他的加密算法是某種 $\mathbb{F}_2[x]\big/ \langle P(x) \rangle$ 下的東西
然後我們要想辦法找出 Secret 是多少,在更動越少 Bits 資料的情況下。
這題的優化策略大致上是
- Trivial 點的在封包指令上注意重複內容能改的盡量少(e.g.
SIGNED和SIGN的編輯距離明顯少很多/Bob 被發現只檢查前 32 Bytes 的內容等等地…) - P 可以被分解成多個 Degree 4~10 的小多項式,等於我們只需要用 oracle 解完小群 CRT 起來就好
- 內部的結構我們可以 BSGS,改動次數、改動量值連動減半
- 預先建立好一些計算結果像是 Inverse/子群下的 Collision Table/和一些本來要爆破才能拿到的條件
不過彼時的 LLM 就很厲害 + 後半段其實沒什麼好用的大優化了就完全交由 shik 大大當值檢員詠唱了 T^T(他的 agent 不知道為什麼特別聰明,跟使用者有關吧?),不過這題我們最後分數第二高!
第一名的策略很酷,他們優先去猜前幾位,所以在一些特定的 Key 下他們總有很高的機率可以比別人少改幾位,但如果沒有的話那就是要額外花 cost 補齊剛剛浪費的次數。不過因為 KoH 每一回合第一名的分數很高所以這是個好策略!
btw 再講一個,這題其實有個 rfc1149a,他們說是用鴿子送 TCP 封包?? rfc1149
666,Jeopardy 工人智慧大賽
給了一堆圖片最後要拼拼圖回去這樣,CTF 陌路了嗎還是這是 n… 系列延伸
The Black Talon
這題我成功開賽一小時後 first blood xD
簡單說就是一個聊天 app,然後有個核心 comittee 用 Verifiable Secret Sharing 做多簽,我們要多拿幾個核心用戶權限來還原 Secret。
那當然也就有 COMMITMENTS 機制事先承諾 User,另外 app 端有個很酷的機制是如果有個 user 發生錯誤的時候他會被 kill 掉接著由現在排序某個位置的 user 當新的核心成員,而最後解法是透過 COMMITMENT 訊息利用 Rust modpow 函數 mod 位不可為 0 的 error 發訊息把核心成員幹掉並通過註冊新帳號來讓我們控制的 user 移動到對應編號位置就好(
Final
Before CTF
好耶進決賽了,第一次去 Las Vegas
前幾天是先去準備比賽以及觀光的
幾件很明顯要注意的事情:
- 空氣中充滿大麻味
- 外面很熱站出去沒幾分鐘就覺得皮膚要裂ㄌㄏㄏ
另外就是四處都有拉霸機包含 Seven(不知道是不是所有?) 偏神奇 xDD
提前一天去桃機 A8 住,順便去見了有點久沒見的朋友

一下機映入眼簾的是 …
那幾天剛好 BlackHat USA 接著 DEFCON,機場柱子上都是各資安廠商的廣告

Day2 就是在附近逛逛和走走那邊的商店街和飯店?
Day 3 的時候被 @shallowfeather 帶著我們一夥另幾個人去 F1 Las Vegas,神奇開車車和展覽體驗,不過我似乎是危險駕駛 = =


後來又拖著某幾人去搭摩天輪,世界第二高的摩天輪!

有一天跟 Naup 在房間點外賣,結果餐廳很努力寫出他的姓氏 “楊”
另外就是東西都好大,物價則是台灣三到五倍
CTF
回來講今年 Final,說說我比較有印象的兩題就好(雖然中間有抓著 Agent 緊急支援別題但我忘得差不多了?)
golduck
首先是一個數學的 KoH 他真的不是密碼學
是一個 Conway’s Game 棋盤遊戲
每個框起來的是一個範圍,會有觀測 box 可以指定要觀測幾 round 後的結果它會回傳,目標是透過在可初始化點的範圍放一些點讓它經過數回合後跟 secret 有交互作用,並通過多次觀察觀測區 side channel secret 出來,洩漏出越多分數越高。
有好幾個 level,到越後面擺放越奇怪,具體解法其實很大部分就是從各種已知會有特殊規則 e.g. 保持某個方向移動/撞到什麼形狀會反彈之類的構造去設計我們初始化的點。
從這邊可以看得蠻懂?
https://playgameoflife.com/lexicon
不過這我真想不到什麼很好用的代數結構切入 qq,暴力做到最後了
bee
Attack & Defense,一個不少見的VM題目格式
ㄟ~原則上就是不斷找新的洞,標號難度,然後精準客製化不同隊伍用最少 exploit 做最多事。
不過有個 Trouble 是寬 UTF-8 字元會讓沒寫好的 entrypoint.py crash,但按照規則又不能 patch、、、
導致題目出來第一天大家都有萬用 exploit,本來有嘗試過在自己的 patch 裡面透過 bee 漏洞塞 RCE 改 entrypoint 但還沒搓完題目就下線了
開始吐槽今年第一年當主辦的主辦 bbb
第一天本來結賽是第二名,結果隔天開盤因為記分板多拿最後一 ROUND 乾燒了二十幾回合導致掉去第四,記分板每天都在出各種狀況隔天又有點黑箱的調整分數((((
反正就這樣轟轟烈烈打完兩天比賽了,印象中還有要從古老 NetScape 瀏覽器找 0day 的 A&D 也頗酷(
After CTF
現場逛!不過攤位到中午過後就快收光了就是 T^T 不過去的時候現場還有 OpenAI、Physical Village (各種物理限制)、賣駭客工具的 Hak5 等攤位,還有看到飛機模擬和機器人在走還有個荒謬老哥瘋狂在空中潑灑塑膠小黃鴨然後喊 “Free Ducks” 並穿著鴨子裝

大鳳梨
在開鎖 Village 拿自己的變色龍打卡片
跟 @naup @aukro @jackoha 幾人一起去吃道地?排餐

CTF 結束後有個辦在某個小屋的 After Party
附上神秘 Zellic 吉祥物???

After all
- 再次感謝所有成員、教授、助理以及贊助方
- 好玩的體驗!
搭飛機不好玩 - 大團隊極限協作模式的體驗?!
ㄅㄅ