以下是一篇給 CTF 新手的入門指南,內容涵蓋 CTF 的基本概念、各題型介紹、學習與練習的方法,以及一些台灣/國際資源分享。希望能幫助想踏入 CTF 世界的新手,快速了解該如何開始。
1. 什麼是 CTF?
CTF(Capture The Flag)是一種資訊安全競賽的形式,通常將挑戰題目分為數種主要類型,例如:
- Pwn (Binary Exploitation):破解或攻擊程式,利用其弱點(漏洞)取得目標機器或執行未被預期的動作。
- Reverse (Reverse Engineering):逆向工程,分析程式碼或檔案運作方式,找出演算法邏輯或破解方法。
- Web (Web Exploitation):針對網站常見漏洞(SQL Injection、XSS、File Inclusion 等)進行滲透測試和漏洞利用。
- Forensics (數位鑑識):分析系統、記憶體或封包,透過蛛絲馬跡取得 Flag。
- Crypto (密碼學):解密、分析密碼或加密演算法,甚至自行推導解密方式。
- Misc (雜項):包含 OSINT、編碼轉換、隱寫術(Steganography)等比較零散的主題。
不同 CTF 會根據賽制與性質分配不同的題目類型,也有部分競賽主打特定範圍(如純 Web 或純逆向)。
CTF 比賽類型分類
1. Jeopardy(解題型)
這是最常見的 CTF 賽制,參賽者需要從多種題目中選擇解題,目標是找到題目隱藏的 Flag,根據題目難度獲得相應分數。
- 特點:
- 題目多樣,涵蓋 Pwn、Reverse、Web、Crypto、Forensics 等領域。
- 參賽者可以自由選擇擅長的題型解題,分數通常累積到比賽結束。
- 適合對象:初學者與進階玩家都可參加,對個人與小型團隊特別友善。
- 範例比賽:picoCTF、Google CTF(Quals 賽)、AIS3 Pre-exam。
2. Attack-Defense(攻防型)
攻防型 CTF 更注重實戰,模擬真實的網路攻防情境。參賽團隊需在指定的基礎環境中,攻擊對手的伺服器同時保護自己的服務。
- 特點:
- 團隊需要同時具備進攻(滲透測試、漏洞利用)與防禦(漏洞修補、日誌分析)能力。
- 賽事進行中,團隊需快速回應對手攻擊,同時在規定時間內得分。
- 適合對象:進階玩家、團隊合作能力強的參賽者。
- 範例比賽:DEF CON CTF(決賽)、HITCON CTF(部分賽制)。
3. King of the Hill(KoTH)
KoTH 是一種特殊的 CTF 比賽類型,參賽者需要攻陷目標系統(通常是一台虛擬機或服務),並在奪得控制權後進行防禦,防止其他參賽者奪回系統的控制。
- 特點:
- 比賽期間,參賽者需要攻擊其他參賽者的已控主機,同時鞏固自己對主機的控制權。
- 參賽者獲得分數的時間取決於他們對目標的控制時間長短。
- 比賽結束時,控制系統時間最長的隊伍或個人獲勝。
- 防禦與攻擊並重:
- 除了滲透測試技術,還需具備系統加固、防禦與監控的能力(如修補漏洞、阻止其他攻擊)。
- 需要快速分析系統漏洞,並在有限時間內設置防禦機制。
- 適合對象:進階玩家或對攻防兼具技能有興趣的參賽者。
- 範例比賽:Hack The Box KoTH、TryHackMe KoTH 模式。
CTF 類型的區別
特點 | King of the Hill | Attack-Defense | Jeopardy |
---|---|---|---|
目標 | 奪取並保持控制權 | 攻擊對手並防禦自己的服務 | 解決獨立題目以取得 Flag |
焦點 | 同時進行攻擊與防禦 | 主要專注於服務防禦與攻擊 | 以解題能力為主 |
比賽方式 | 所有參賽者攻擊同一目標並競爭控制權 | 團隊之間互相攻擊與防禦 | 各自解決題目,沒有直接對抗 |
難度 | 高,需兼顧攻防技術 | 高,需了解滲透與防禦的完整流程 | 中至高,視題目難度而定 |
4. Boot2Root(主機滲透型)
參賽者需要進入一個目標機器(通常為虛擬機),利用滲透測試技術攻入系統,並在最高權限(Root 權限)下找到 Flag。
- 特點:
- 強調滲透技術和對系統漏洞的理解。
- 過程涉及資訊搜集、漏洞分析、利用、權限提升等完整流程。
- 適合對象:喜歡主機滲透測試、想模擬真實環境的玩家。
- 範例平台:Hack The Box、TryHackMe。
5. Real-World Simulation(真實世界模擬型)
這類比賽聚焦於模擬真實世界的安全事件,例如針對公司內部網路、工控系統(ICS)、雲端服務進行滲透測試或攻防。
- 特點:
- 題目更貼近企業實際場景,涉及多層網路架構與複雜應用。
- 強調團隊合作,解決多面向問題。
- 適合對象:有企業安全背景或希望參與真實場景的進階玩家與團隊。
- 範例比賽:Cyber Apocalypse CTF、Cyber Defence Exercise(CYBER-X)。
6. AI/自動化型 CTF
部分比賽專注於結合人工智慧(AI)技術與資安競賽,要求參賽者開發自動化工具進行漏洞探索、攻擊或防禦。
- 特點:
- 高度依賴編程能力和算法設計。
- 題目通常具有學術或研究性質。
- 適合對象:熟悉 AI、機器學習或算法研究的參賽者。
- 範例比賽:DARPA Cyber Grand Challenge。
7. 教育型 CTF(Learning-Based)
這類比賽設計目的是教育與培訓,例如專為新手設計的題目,幫助參賽者逐步學習資安概念與技能。
- 特點:
- 題目附有提示與教學指引,適合練習基礎技能。
- 目標是提升參與者的知識與實踐能力,而非競爭性。
- 適合對象:新手、學生、希望從頭學習的玩家。
- 範例比賽:picoCTF、OverTheWire、AIS3 Pre-exam。
8. 企業實戰 CTF(Red Team vs. Blue Team)
由企業或資安組織主辦,比賽通常設計為「紅隊 vs 藍隊」模式。參賽者分為攻擊方(紅隊)與防禦方(藍隊),模擬企業內部的攻防場景。
- 特點:
- 比賽設計高度貼近實際企業安全需求,涵蓋事件響應、威脅檢測等內容。
- 適合有意進入企業資安工作的參賽者。
- 適合對象:企業內資安團隊、進階資安工程師。
- 範例比賽:Cybersecurity Attack & Defense Exercise。
如何選擇適合的比賽類型?
- 新手玩家:
- 建議從 Jeopardy 型 或 教育型 CTF 開始,例如 picoCTF、AIS3 Pre-exam、OverTheWire。
- 進階玩家或團隊:
- 可挑戰 攻防型 CTF 或 混合型 CTF,如 HITCON CTF、Google CTF。
- 實戰導向:
- 若希望模擬真實環境或學習企業場景,選擇 Real-World Simulation 或 Boot2Root 型 比賽。
- 學術與研究興趣:
- 對 AI 或演算法有興趣的玩家可參與 AI 相關 CTF。
2. 新手該如何開始?
2.1 選擇適合自己的入門平台
對於剛入門 CTF 的玩家而言,建議先從針對新手而設計的教學平台或競賽開始,以下幾個是常見的選擇:
- picoCTF
- 由美國卡內基美隆大學(CMU)舉辦,題目相對友善且適合新手。
- 每年官方會舉辦一次正式比賽,除此之外以「練習模式」形式保留大部分題目供人免費練習。
- OverTheWire
- 以闖關遊戲的形式教你基礎 Linux 指令操作、基礎 Exploit 技巧等,特別適合對 CLI 不熟悉或想補強 Linux 環境知識的新手。
- AIS3 Pre-exam / AIS3 Camp
- 教育部(台灣資安人才培育計畫)舉辦的資安營隊、課程、比賽等。
- AIS3 Pre-exam 題目相對入門,適合剛接觸 CTF 的學生和初學者。
- CTF 練習網站(如 Hacker101 CTF、Hack The Box 等)
- 練習強度各有不同,Hacker101 比較偏 Web,Hack The Box 則偏主機滲透(Pwn、系統與服務漏洞)。
2.2 根據「興趣」或「需求」選擇題型
CTF 題型五花八門,建議先挑選自己「有興趣」或「比較容易入門」的領域深入鑽研。例如:
- 喜歡寫程式、對底層記憶體管理有興趣 → Pwn
- 對破解邏輯、分析未知機制感興趣 → Reverse
- 對 Web 開發與網站安全概念熟悉 → Web
- 喜歡抽絲剝繭的調查、對檔案碎片或網路封包分析有興趣 → Forensics
- 對密碼學理論或編碼轉換有好奇心 → Crypto
一開始不必全部都學,可以先挑一兩個主題。「有興趣」才會願意投入更多時間摸索。
3. 建置基礎環境與工具
- 作業系統與基礎指令
- 新手推薦熟悉 Linux 環境,如 Ubuntu、Kali Linux 等。
- 基本的 CLI(Command Line Interface)操作很重要:
ls
,cd
,grep
,strings
,file
,wget
,curl
,tcpdump
,nc
等都是 CTF 常用命令。
- 開發語言或腳本工具
- 常見的 Python、C/C++、以及有時候需要 Node.js、Go 或 Java。
- Python 的
requests
、pwntools
、pycryptodome
等套件是 CTF 過程中常用的利器。
- 各種專業工具
- 逆向工具:Ghidra、IDA Free、radare2、Binary Ninja (付費版)
- 除錯器:gdb + pwndbg / peda、x64dbg
- 網頁測試:Burp Suite、OWASP ZAP
- 鑑識工具:Wireshark、binwalk、Autopsy
- 密碼/雜項:CyberChef、hashcat、John the Ripper 等
- 虛擬機、容器
- 使用 VirtualBox、VMware Workstation 或 Docker 方便隔離環境、安裝練習平台。
4. 練習、解題與學習路徑
4.1 先從基礎題目做起
初學者常會覺得「題目都看不懂」,建議先從題目描述清晰、難度較低的平台開始,比如 picoCTF的基礎題。
- 先熟悉操作、嘗試用基礎工具解題。
- 取得Flag 後要思考「為什麼能這樣解?背後原理是什麼?」。
4.2 看別人的 Writeup(解題報告)
CTF 最大的學習資源之一,就是參賽者在賽後分享的 Writeup。多看幾篇不同作者的解題過程,你會發現有些人使用的工具或技巧,比你原先的流程更快或更巧妙。
- 例如 CTFWriteups 或國內外 CTF 戰隊的部落格、GitHub 都常分享解題心得。
- 大會官方有時候也會匯整優秀戰隊的解題步驟。
4.3 建立自己的學習筆記
- 在解題過程中記錄下關鍵指令、錯誤原因、成功原因、工具使用方法。
- 遇到技術名詞、專有名詞(如 Buffer Overflow、ROP、SQL Injection、XOR Encryption 等),記得查資料、做筆記。
4.4 參加線上賽或小型賽事
- 線上 CTF 幾乎每週都在舉辦,可以透過 CTFTime.org 查看即將舉辦的賽事、難度評價、國際排名等。
- 不要害怕難度,哪怕只能解一兩題,也能學到很多。
5. CTF 是團隊戰,但也能朝「多邊形戰士」努力
5.1 團隊合作的重要性
CTF 通常是團體作戰,每個人負責不同領域,能互補技能:
Pwn + Reverse
專精的人配合Web + Crypto
專精的人,再加上比較熟 Forensics 或系統管理的人。- 團隊之間能更快做出題目分配,充分利用時間。
5.2 個人全面發展
當然,有些人想要「什麼都會」,成為「多邊形戰士」。
- 這需要投入大量時間與練習,多參加不同型態的 CTF,熟悉各種解題思維。
- 或者在隊內多嘗試你不熟悉的題型,慢慢把知識補起來。
6. 難度不可預測,但透過不斷練習能逐漸上手
CTF 目前出題的困境:
- 出題者覺得簡單
- 參賽者就是不會
每位出題者的思維模式不同,也無法完全預測參賽者的程度。只有不斷地參加比賽、做題目、看各種解題思維,才能在面對不同風格與難度的題目時,持續成長。
7. 練習資源與推薦閱讀
- CTF Resource 整理
- TW-Security-and-CTF-Resource (by Ice1187)
- 這是很多臺灣 CTF 玩家推薦的資源清單,包含工具教學、題目平台、Writeup 收藏等。
- AIS3
- AIS3 官方網站 以及相關課程。
- CTFTime
- ctftime.org
- 即將舉辦的 CTF 賽事資訊、戰隊積分、歷屆題目與 Writeup 等。
- Writeups & Blog
- GitHub – ctfs
- CTFWiki(英文,不過內容很全面)
- 練習平台
- OverTheWire、picoCTF、Hack The Box、Hacker101 等。
8. 心態與學習建議
- 從錯誤中學習
- 做 CTF 題目時,容錯率很高,「嘗試」本身就是過程。
- 在錯誤裡面學到一點技巧,就會為日後解題留下寶貴經驗。
- 建立良好的知識網路
- 多方閱讀、碰到新概念立刻記錄或嘗試實做。
- 學習要系統化,才能在遇到陌生領域題目時,快速定位該使用何種技術、工具。
- 尋求社群交流
- 加入 CTF 團隊或在社群(如 Facebook、Discord、Line 群組、PTT 資安版等)發問討論。
- 資訊安全領域的同好相對熱心,願意教學或分享心得。
- 保持熱情與耐心
- 資安與 CTF 的學習範圍很廣,需要堅持和持續練習。
- 一旦在某題突破之後,成就感非常大,也能激勵你更加鑽研。
9. 常見 CTF 賽事推薦
CTF 賽事遍佈全球,分為線上與實體、個人與團體競賽等類型。以下是幾個值得關注的 CTF 比賽:
9.1 全球知名 CTF 賽事
- DEF CON CTF
- 類型:團體賽
- 簡介:全球最知名的 CTF,比賽分為多輪,最終在 DEF CON 資安大會中進行決賽。
- 難度:極高(適合進階玩家)。
- 官網:DEF CON CTF
- Google CTF
- 類型:團體賽(分為 Quals 線上賽與 Finals 決賽)
- 簡介:由 Google 資安團隊舉辦,題目設計創新且具挑戰性,涵蓋 Web、Pwn、Crypto 等多題型。
- 難度:中高(適合有基礎經驗者)。
- 官網:Google CTF
- PlaidCTF
- 類型:團體賽
- 簡介:由美國 CMU 的 Plaid Parliament of Pwning 戰隊舉辦,是一場知名度極高的 CTF 賽事。
- 難度:中高(解題風格偏實用技術)。
- 官網:PlaidCTF
- HITCON CTF
- 類型:團體賽
- 簡介:由台灣 HITCON 社群舉辦,吸引大量國內外高手參賽,預賽通常線上舉行,決賽則在實體活動中進行。
- 難度:高。
- 官網:HITCON CTF
- picoCTF
- 類型:個人或團體賽
- 簡介:針對新手設計的 CTF,比賽題目由淺入深,非常適合學校、個人參與。
- 難度:低至中(新手友善)。
- 官網:picoCTF
- CTFzone
- 類型:團體賽
- 簡介:由 Positive Technologies 主辦,題目涵蓋面廣,對 Reverse 與 Pwn 題型有深入設計。
- 難度:中高。
- 官網:CTFzone
10.2 台灣地區 CTF 賽事
- AIS3 EOF CTF
- 類型:線上賽、實體營隊
- 簡介:由台灣教育部資安人才培育計畫 AIS3 舉辦,比 AIS3 Pre-exam 來說更有挑戰性。
- 難度:中等至進階。
- 官網:AIS3 官方網站
- HITCON CTF
- HITCON 不僅是國際級賽事,也同時吸引本地參賽者,提供練習和進階玩家切磋的機會。
- 學校內或國內特定 CTF
- 像是:
- 各大學(如台灣大學、交大)的資安競賽。
- 由資安公司或社群舉辦的小型賽事。
- 像是:
10. 結語
CTF 不僅是一場比賽,更是一個持續練習、實踐與交流的學習過程。從最基礎的 picoCTF 或 AIS3 Pre-exam 題目開始,再逐漸擴展到更廣的題型、更多的比賽。在這條路上,你會不斷遇到新概念與技術,不斷試錯和成長。
- 如果你只是想「試試看」或「好奇」這個世界,建議不要給自己太大壓力,抱著學新東西的心情就好。
- 如果你想「往資安專業發展」,CTF 絕對是訓練自己實力、累積作品和知識最有效的方式之一。
希望這篇新手指南能幫助大家理解 CTF 的起步方向,帶給大家更多信心與方法去面對各種未知的挑戰。祝大家在 CTF 路上玩得開心,也持續進步!