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

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

一、解題模式(Jeopardy)

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

二、攻防模式(Attack-Defense)

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

三、混合模式(Mix)

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

1、MISC(Miscellaneous)

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

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

參考工具:file、010Editor、Binwalk、foremost、dd、Stegsolve、Audacity、steghide、Wireshark等。
最終目標(biāo):熟悉文件類型結(jié)構(gòu)分析、隱寫相關(guān)、壓縮文件結(jié)構(gòu)、日志分析、流量分析、信息收集等。

2、Reverse

逆向分析,將二進(jìn)制機(jī)器碼進(jìn)行反匯編得到匯編代碼,在匯編代碼的基礎(chǔ)上,進(jìn)行功能分析。

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

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

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

3、Crypot(密碼學(xué))

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

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

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

4、Mobile

主要分為安卓和IOS兩個(gè)平臺(tái),以安卓逆向?yàn)橹?,破解apk并提交正確答案。

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

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

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

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

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

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

6、PWN

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

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

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

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

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

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