[心得] HITCON CTF 2022 - yeeclass
今年跟著 TSJ 一起主辦了 HITCON CTF 2022 出了一題 Web 水題 - yeeclass
解法寫在 [Writeup](https://github.com/t510599/My-CTF-Challenges/tree/master/HITCON%20CTF/2022/yeeclass) 了 有興趣的可以參考看看
這篇主要是出題心得
## 出題
這題的靈感是跟 NCtfU 在打 CakeCTF 2021 時的 [unintended solution](https://blog.maple3142.net/2021/08/29/cakectf-2021-writeups/#unintend-solution)
那時候用 `uniqid()` 的特性硬爆了路徑出來 後來就在看有沒有機會能湊個題目出來
剛好這次是由 TSJ 來接手 HITCON 2022 的出題工作 就試著生了個題目丟上去
最早也是想弄成類似原題的檔案上傳 或是弄成 race condition 的題目
但後來時間不太夠 懶得防東防西的 就變成現在的樣子了 XD
當時剛好是段考前 看著看著學校的 eeclass 就想到ㄌ包裝的形式 這也是題目名稱的由來
有了主題之後 想說只有 `uniqid()` 的洞也太單調了 才再弄出了權限的弱比較 (對 `-1` 是硬湊的)
差不多想好後就著手動工 大約花了 2 天多
第一天都在刻 UI 跟複習 PHP 實在太久沒碰 (汗
接著便是接上 database 跟包成 docker 為了解決跑 init script 時 DB 還沒起來的問題搞了有點久
最後包完丟出去給別人驗大概是 OS 段考的前兩天 幸好最後段考沒炸開
## 賽中 & 賽後
上完題目大概一小時就有人首殺了 不過後面解題速度就沒那麼快了
隔天一起床就發現題目被打爛了 QQ 被 bruteforce 到 VM 扛不住
有不少人在反應題目慢 (感謝其他 staff 幫我解 ticket)
接著就開始邊配午餐邊上 apache QoS 上完一陣子後也手動 ban 了某個 ip
最後解題數只有 52 隊 其實比想像中少不少
原本預期至少有個 100 隊 畢竟就是個樸實無華 bruteforce 題 (?)
後來問發現好像有些隊是因為沒設好 timezone (docker 裡是 UTC) 才沒解開
~~其實一開始出完自己在測試也忘記時區~~
賽後看大家討論 發現其實不小心寫了個 XSS 出來 (?
被拿去打 cookie (其他題) XSS 了 XD

payload:
```
http://yeeclass.chal.hitconctf.com:16875/submission.php?homeworkid=2%22%3E%3Cscript%3Ealert(1)%3C/script%3E
```
## 後記
這是我第一次出 Web 的 CTF 題 經驗不太夠
出了 bruteforce 卻沒設計好 QoS 跟 VM 規格 然後被打爆了 QQ
有了這次經驗 希望下次出題可以考慮的更周到 XD
2022-12-03 01:13:28
留言
Last fetch: --:--
現在還沒有留言!