CTF(Capture The Flag)即奪旗賽,在網(wǎng)絡安全領域中指的是網(wǎng)絡安全技術人員之間進行技術競技的一種比賽形式。CTF起源于1996年DEFCON全球黑客大會。

CTF競賽模式具體分為以下三類:
解題模式(Jeopardy)、攻防模式(Attack-Defense)、混合模式(Mix)

一、解題模式(Jeopardy)

可通過互聯(lián)網(wǎng)或現(xiàn)場網(wǎng)絡參與,解決網(wǎng)絡安全技術挑戰(zhàn)題目,并以分值和時間排名。題目主要包括:web滲透,逆向,漏洞挖掘與利用,密碼,取證,隱寫,安全編程等。

二、攻防模式(Attack-Defense)

在網(wǎng)絡空間互相進行攻擊和防守,挖掘網(wǎng)絡服務漏洞并攻擊對手來得分,修補自身服務漏洞進行防御來避免丟分。注重團隊合作及智力技術的比拼。

三、混合模式(Mix)

結合了解題模式與攻防模式的CTF賽制,先通過解題取得初始分,然后通過攻擊對抗進行得分。主要的CTF題型:

1、MISC(Miscellaneous)

即安全雜項,主要考察參賽選手的各種基礎綜合知識。題目涉及隱寫術、流量分析、電子取證、人肉搜索、數(shù)據(jù)分析、大數(shù)據(jù)統(tǒng)計等,覆蓋面比較廣,主要考察參賽選手的各種基礎綜合知識。

Misc沒有套路化的解題流程,具體問題具體分析。

參考工具:file、010Editor、Binwalk、foremost、dd、Stegsolve、Audacity、steghide、Wireshark等。
最終目標:熟悉文件類型結構分析、隱寫相關、壓縮文件結構、日志分析、流量分析、信息收集等。

2、Reverse

逆向分析,將二進制機器碼進行反匯編得到匯編代碼,在匯編代碼的基礎上,進行功能分析。

Reverse類題型要求參賽選手有較強的反匯編、反編譯功底。題目主要涉及軟件逆向破解技術,參賽者會得到一個程序,需在沒有完整原始碼的情況下分析程序,找到隱藏的信息,或者改變程序的運行流程。

逆向解題的基本流程:
(1)程序預處理,去混淆和過反調試;
(2)代碼逆向,找到驗證函數(shù);
(3)驗證函數(shù)數(shù)逆向,找到驗證算法;
(4)破解驗證算法,拿到flag。

最終目標:熟悉匯編語言、C語言、操作系統(tǒng)原理及其核心編程、程序加載、反匯編與調試等等。理解目標代碼,能看懂目標程序編寫語言。

3、Crypot(密碼學)

Crypto類題型考察參賽選手密碼學相關知識點。包括古典加密技術、現(xiàn)代加密技術甚至出題者自創(chuàng)加密技術,以及一些常見的編碼解碼,主要考察參賽選手密碼學相關知識點。通常也會和其他題目相結合。

Crypto解題的基本流程:
(1)分析編碼或加密所使用的技術;
(2)使用工具對密文解密;

參考工具:CryptoSearcher、Base64kit、HashCalc、RSATool2、John the Ripper等。
最終目標:熟悉各類編碼方式(hex、base64、url、ascii、摩斯電碼等)和加密方式(MD5、SHA、AES、DES、RSA、柵欄加密等)。

4、Mobile

主要分為安卓和IOS兩個平臺,以安卓逆向為主,破解apk并提交正確答案。

Mobile解題的基本流程:
(1)根據(jù)題目的apk文件,提出class.dex文件得到jar文件;
(2)獲取jar文件中源碼進行代碼分析

參考工具:dex2jar、Androidkiller、jd-gui等。
最終目標:掌握安卓逆向分析、安卓語言等。

5、Web(漏洞挖掘與利用)

Web類題型是CTF的主要題型,主要考察參賽選手是否掌握常見的Web漏洞,如XSS、文件包含、命令執(zhí)行、上傳漏洞、SQL注入等。也有一些簡單的關于網(wǎng)絡基礎知識的考查,如請求返回包、TCP/IP、數(shù)據(jù)包內容和構造。題目環(huán)境比較接近真實環(huán)境。

Web沒有套路化的解題流程,具體問題具體分析。

參考工具:Brup Suite、fiddler、中國菜刀、sqlmap、開發(fā)者工具等。
最終目標:掌握Web漏洞原理與測試技巧、JavaScript、SQL、Linux命令等等。

6、PWN

Pwn類題型要求參賽選手有較強漏洞利用能力。在CTF比賽中它代表著溢出類的題目,其中常見類型溢出漏洞有整數(shù)溢出、棧溢出、堆溢出等。

Pwn解題的基本流程:
(1)分析二進制文件,找到其中漏洞;
(2)通過異常的輸入,利用漏洞,執(zhí)行目標代碼,獲取flag;
參考工具:IDA Pro、pwntools、gdb、ROPgadget等。
最終目標:掌握匯編語言、逆向基礎、軟件技術防護 、ROP面向返回的編程技巧、各類漏洞。

7、Stega(Steganography)類型,
即隱寫術,題目的Flag會隱藏到圖片、音頻、視頻等各類數(shù)據(jù)載體中供參賽者獲取。

8、Recon(社工,情報搜索分析)

9、Forensic(網(wǎng)絡流量分析,隱寫分析,系統(tǒng)取證)

10、PPC(Professionally Program Coder)類型,即編程類題目,題目涉及到編程算法,相比ACM較為容易。