11月9日更新:
- CTF All in one
0x01 什麼是CTF
CTF全稱為Capture The Flag,也就是所謂的奪旗賽,起源于1996年DEFCON全球黑客大會,是讓黑客和資安愛好者進行技術競技的一種比賽。
0x02 CTF的歷史
0x03 CTF的種類
比賽一般上有3種模式。分別是
- 解題模式 - Jeopardy
- 戰爭分享模式 - Belluminar
- 攻防模式 - Attack & Defense
在解題模式當中,參賽者需要解答出以下類型的題型,每題都會有不一樣的分數,而比賽的最終積分也會決定參賽者的排名。
Reverse Engineering
- 題目涉及到軟件逆向,破解技術等,要求有較強的反彙編、反編譯功底。主要考查參賽選手的逆向分析能力。
- 所需知識:彙編語言,加密與解密,常見反編譯工具。
Web
- Web是CTF的主要題型,題目涉及到許多常見的Web漏洞,如XSS、文件包含、代碼執行、上傳漏洞、SQL注入等。也有一些簡單的關於網絡基礎知識的考察,如返回包、TCP/IP、數據包內容和構造。可以說題目環境比較接近真實環境。
- 所需知識:PHP、Python、TCP/IP、SQL。
Cryptography
- 題目考察各種加解密技術,包括古典加密技術、現代加密技術甚至出題者自創加密技術,以及一些常見編碼解碼,主要考查參賽選手密碼學相關知識點。通常也會和其他題目相結合。
- 所需知識:密碼學。
Forensics
- In a CTF context, “Forensics” challenges can include file format analysis,stegonography, memory dump analysis, or network packet capture analysis. Any challenge to examine and process a hidden piece of information out of static data files could be considered a Forensics challenge.
- 所需知識:file format,scripting language (e.g.Python),manipulate binary data (byte-level manipulations) in that language understand protocols, structures, and encodings
Pwn
- Pwn在黑客俚語中代表著攻破,獲取權限,在CTF比賽中它代表著溢出類的題目,其中常見類型溢出漏洞有整數溢出、棧溢出、堆溢出等。主要考查參賽選手對漏洞的利用能力。
- 所需知識:C,Olly Debug+IDA,數據結構,操作系統。
- Pwn在黑客俚語中代表著攻破,獲取權限,在CTF比賽中它代表著溢出類的題目,其中常見類型溢出漏洞有整數溢出、棧溢出、堆溢出等。主要考查參賽選手對漏洞的利用能力。
- Misc
- Misc即安全雜項,題目涉及隱寫術、流量分析、人肉搜索、數據分析等,覆蓋面比較廣,主要考查參賽選手的各種基礎綜合知識。
- 所需知識:常見隱寫術工具、Wireshark 等流量審查工具、編碼知識
- Mobile
- 主要分為 Android和iOS 兩個平台,以Android逆向為主,破解APK並提交正確答案。
- 所需知識:Java,Android 開發,常見工具。
Normally, players will specialize in one of these categories. Although it is possible to have a basic knowledge of all of them, we suggest you begin by focusing on the one that interests you most. This guide will be focusing On Binary Exploitation.
0x04 CTF新手須知
若想知道世界各地在什麼時候會舉辦CTF比賽,CTF Times是你可以查詢的地方。這個網站找到一切以前和即將舉行的CTF比賽。當然你也可以找到比賽隊伍的成績,世界排名以及他們提供的答案(Writeup)。
以下是本人推荐新手可以参加的CTF比赛。
當你有了經驗之後,想嘗試高難度的CTF比賽可以試試看做Defcon CTF的題目
每當你做完一道題目的時候,可以把自己的做法和用到的思路寫成Writeup,目的是為了將自己在解題的時候,所學到的知識有系統的整理好,也方便以後可以參考回自己做過類似的題目。
你也可以瀏覽CTF完整資源導航網站來找到更多有關資訊。
第二個推薦的導航網站Got Your Pw。
一些CTF的介紹文章/Wiki/投影片。
- Becoming A Security Master 2017 by C.K.Chan from Bamboo Fox.
- All In One CTF
- CTF經驗分享 by Mango from Bamboofox
- CTF比賽總是輸,你還差點Tricks
- CTF超入門 (for 第12回セキュリティさくら)
- CTF for ビギナーズ ネットワーク講習資料
- CTF UCLA Beginner’s Guide
- Getting Started with CTF
- CTF From 0 to 1
- CTF認識
- How to play CTF
而CTF維基則涵蓋了一般的出題思路以及其解題的方式,不管你是新手還是老手都建議你看一看,畢竟基本的一些思路,在這個維基裡面都解釋得非常清楚。此外,想更深入了解維基裡面的每個項目,也可以繼續關注本人的部落格,作者會不定時更新一些對於該維基項目的補充和新的資訊。
0x05 學習資源
- BambooFox CTF戰隊的社團課程:課程內容有Linux Basic,Set up VMware,Programming,Web Security,Assmbly Languge,Buffer overflow,ROP,Crypto,Reverse Engineering等等。
- Linux
- 實驗吧CTF訓練課程&比賽題目練習
- 逆向工程學習指南
- PwnWiki.io
- 看雪软件安全文档库2013版本:內有電腦基礎,逆向,系統,調試,編程語言,軟件保護,PEDIY,病毒,漏洞分析,網絡安全等知識。
- 加密解密第三版。這本書已經包含了大部分前面文檔庫裡面涵蓋的知識。
- 看雪學院2017精華資源指南
- 看雪論壇
- 滲透師導航
- Awesome CTF
除了以上資源,你也可以自己上網閱讀一些大神寫的文章,從他們自我總結的經驗當中,你往往可以學得更快。單單看並不足夠,最重要的還是要自己做筆記,唯有這樣你才會清楚知道自己已經學會了什麼知識。
0x06 個人推薦CTF訓練基地
- Overthewire
- Backdoor SDS Lab
- Enigmagroup
- Hack This Site
- W3Chall
- Reversing.kr
- Pwnable.kr
- Exploit-exercises
- Micro Corruption
- Samsh the stack
- Wargame Kr
- CTF Learn
- Pwnable TW
- [Ringzer 0 Team(https://ringzer0team.com)
- Hackme Inddy Tw
- CTF 365
- PWN Wiki
- CTF Sqrt
- 實驗吧CTF
- Bamboofox- list of challenge in each course
- Solve Me
- CTFS ME
- 台灣草鴞程式競賽
0x07 CTF出題方向學習資源
Web
- Web Security Learning by Chybeta
- WAF by pass
- SQLI Labs
- Redtiger Lab Overthewire
- [http://xss-quiz.int21h.jp]
- [https://alf.nu/alert1]
- [http://google-gruyere.appspot.com]
- [https://xss-game.appspot.com]
- [http://ctf.infosecinstitute.com/index.php]
http://ctf.infosecinstitute.com/ctf2/
http://prompt.ml/0
http://www.webug.org
Forensic
Pwn
- Software Security Learning by Chybeta
http://vancir.com/tutorials.html
http://www.louys.net.cn/index.php/archives/120/
https://github.com/firmianay/Binary-Reading-List
http://security.cs.rpi.edu/courses/binexp-spring2015/
Reverse Enginnering
隱寫術
Cryptography
0x08 CTF實際好用工具推薦
1.CTF 工具 https://ctf-wiki.github.io/ctf-tools/#!index.md
2.CTF Tools List by Zardus https://github.com/zardus/ctf-tools
3.https://github.com/Gallopsled/pwntools Documentation: https://docs.pwntools.com/en/stable/
4.https://github.com/truongkma/ctf-tools
5.https://github.com/P1kachu/v0lt
6.https://github.com/TUCTF/Tools
7.http://blog.csdn.net/ida0918/article/details/52819147
8.https://github.com/truongkma/ctf-tools
0x09 CTF戰隊的部落格
0x10 搭建CTF比賽平台
參考鏈接
- https://rupigcute.wixsite.com/quantiumtown/rssindex
- https://ctf-wiki.github.io/ctf-wiki/#
- https://www.gitbook.com/book/wizardforcel/ctf-field-guide
- http://www.storysec.com/?p=89