網(wǎng)絡(luò)安全CTF(Capture The Flag)奪旗賽,起源于1996年DEFCON全球黑客大會(huì),在網(wǎng)絡(luò)安全領(lǐng)域中指的是網(wǎng)絡(luò)安全技術(shù)人員之間進(jìn)行技術(shù)競(jìng)技的一種比賽形式。
CTF競(jìng)賽涉及各種安全領(lǐng)域,如網(wǎng)絡(luò)攻擊、密碼學(xué)、逆向工程、Web安全等,參與者通過(guò)解決一系列安全挑戰(zhàn)來(lái)獲取旗幟(flag)并贏得比賽。
CTF競(jìng)賽設(shè)有多個(gè)題目,每個(gè)題目代表一個(gè)安全挑戰(zhàn)。這些題目可能要求參賽者進(jìn)行逆向工程解密、網(wǎng)絡(luò)協(xié)議解析、漏洞利用、編程等。
每個(gè)題目都隱藏了一個(gè)旗幟(flag),參賽者需要通過(guò)技術(shù)手段獲取這些旗幟。通常旗幟是一個(gè)特定格式的字符串(例如,flag{example_flag}),參賽者獲取旗幟后提交給平臺(tái)進(jìn)行得分。
CTF競(jìng)賽以得分為依據(jù),參賽隊(duì)伍根據(jù)解決問(wèn)題的數(shù)量和難度獲得相應(yīng)的得分。通常有一個(gè)排行榜會(huì)實(shí)時(shí)顯示每個(gè)隊(duì)伍的得分情況。
目前國(guó)內(nèi)比較大型的CTF比賽,有TCTF,XCTF,AliCTF,XDCTF,HCTF,ISCC等。
CTF有哪些競(jìng)賽模式?
解題模式(Jeopardy):題目主要包含逆向、漏洞挖掘與利用、Web滲透、密碼、取證、隱寫、安全編程等類別。在解題模式CTF賽制中,參賽隊(duì)伍可以通過(guò)互聯(lián)網(wǎng)或者現(xiàn)場(chǎng)網(wǎng)絡(luò)參與,這種模式的CTF競(jìng)賽與ACM編程競(jìng)賽、信息學(xué)奧賽比較類似,以解決網(wǎng)絡(luò)安全技術(shù)挑戰(zhàn)題目的分值和時(shí)間來(lái)排名,通常用于在線選拔賽。
攻防模式(Attack-Defense):在攻防模式CTF賽制中,參賽隊(duì)伍在網(wǎng)絡(luò)空間互相進(jìn)行攻擊和防守,挖掘網(wǎng)絡(luò)服務(wù)漏洞并攻擊對(duì)手服務(wù)來(lái)得分,修補(bǔ)自身服務(wù)漏洞進(jìn)行防御來(lái)避免丟分。攻防模式CTF賽制可以實(shí)時(shí)通過(guò)得分反映出比賽情況,最終也以得分直接分出勝負(fù),是一種競(jìng)爭(zhēng)激烈,具有很強(qiáng)觀賞性和高度透明性的網(wǎng)絡(luò)安全賽制。
混合模式(Mix):結(jié)合了解題模式與攻防模式的CTF賽制,比如參賽隊(duì)伍通過(guò)解題可以獲取一些初始分?jǐn)?shù),然后通過(guò)攻防對(duì)抗進(jìn)行得分增減的零和游戲,最終以得分高低分出勝負(fù)。采用混合模式CTF賽制的典型代表如iCTF國(guó)際CTF競(jìng)賽。
新人參加CTF有哪些好處呢?
參與CTF競(jìng)賽可以促進(jìn)個(gè)人成長(zhǎng),為網(wǎng)絡(luò)安全領(lǐng)域的職業(yè)發(fā)展打下堅(jiān)實(shí)基礎(chǔ)。有過(guò)相關(guān)經(jīng)驗(yàn),獲得好成績(jī),一定是能夠?yàn)樽约杭臃值摹?/b>
首先、能夠?qū)W習(xí)和提高安全技能:通過(guò)挑戰(zhàn)不同類型的安全問(wèn)題,參賽者可以提高自己在各個(gè)安全領(lǐng)域的技能和知識(shí)。
第二、能夠獲取實(shí)戰(zhàn)經(jīng)驗(yàn):CTF競(jìng)賽提供了一個(gè)模擬實(shí)戰(zhàn)環(huán)境,讓參賽者能夠在安全挑戰(zhàn)中應(yīng)用所學(xué)知識(shí),鍛煉實(shí)際操作能力。
第三、能夠理解團(tuán)隊(duì)合作:CTF競(jìng)賽通常以團(tuán)隊(duì)形式進(jìn)行,促進(jìn)了隊(duì)伍成員之間的合作和交流,提高了參賽者的團(tuán)隊(duì)協(xié)作能力。
第四、善于發(fā)現(xiàn)安全漏洞:通過(guò)解決題目,參賽者可以學(xué)習(xí)到各種安全漏洞和攻擊技術(shù),加深對(duì)網(wǎng)絡(luò)安全的理解。
那么新人要怎么學(xué)CTF?
首先,你需要了解CTF主要考哪些內(nèi)容。
MISC(安全雜項(xiàng)):全稱Miscellaneous。題目涉及流量分析、電子取證、人肉搜索、數(shù)據(jù)分析、大數(shù)據(jù)統(tǒng)計(jì)等等,覆蓋面比較廣。
PPC(編程類):全稱Professionally Program Coder。題目涉及到程序編寫、編程算法實(shí)現(xiàn),算法的逆向編寫,批量處理等。
REVERSE(逆向):全稱reverse。題目涉及到軟件逆向、破解技術(shù)等,要求有較強(qiáng)的反匯編、反編譯扎實(shí)功底。需要掌握匯編,堆棧、寄存器方面的知識(shí)。
PWN(溢出):PWN在黑客俚語(yǔ)中代表著攻破,取得權(quán)限,在CTF比賽中它代表著溢出類的題目,其中常見(jiàn)類型溢出漏洞有棧溢出、堆溢出。
WEB(web類):WEB應(yīng)用在今天越來(lái)越廣泛,也是CTF奪旗競(jìng)賽中的主要題型,題目涉及到常見(jiàn)的Web漏洞,諸如注入、XSS、文件包含、代碼審計(jì)、上傳等漏洞。這些題目都不是簡(jiǎn)單的注入、上傳題目,至少會(huì)有一層的安全過(guò)濾。
CRYPTO(密碼學(xué)):全稱Cryptography。題目考察各種加解密技術(shù),包括古典加密技術(shù)、現(xiàn)代加密技術(shù)甚至出題者自創(chuàng)加密技術(shù)。
STEGA(隱寫):全稱Steganography。題目的Flag會(huì)隱藏到圖片、音頻、視頻等各類數(shù)據(jù)載體中供參賽選手獲取。載體就是圖片、音頻、視頻等,可能是修改了這些載體來(lái)隱藏flag,也可能將flag隱藏在這些載體的二進(jìn)制空白位置。
基于以上如何學(xué)習(xí)呢?
先了解基本網(wǎng)站架構(gòu)、基礎(chǔ)網(wǎng)站開發(fā)原理,基礎(chǔ)的前后端知識(shí),能夠讓你之后的漏洞學(xué)習(xí)暢通無(wú)阻。內(nèi)容包括:
1、前端三要素: html、css、js是被瀏覽器解析的代碼,是構(gòu)成靜態(tài)頁(yè)面的基礎(chǔ)。也是前端漏洞如xss、csrf的基礎(chǔ)。你要做到能夠?qū)懗龊?jiǎn)單表單,能夠通過(guò)js獲取DOM元素,控制DOM樹即可。
2、apache+php:通過(guò)apache+php體會(huì)一下網(wǎng)站后端的工作,客戶端瀏覽器通過(guò)請(qǐng)求apache服務(wù)器上的php腳本,php執(zhí)行后生成的html頁(yè)面返回給瀏覽器進(jìn)行解析。這個(gè)模塊你需要了解基本網(wǎng)站原理,了解php基本語(yǔ)法,開發(fā)簡(jiǎn)單動(dòng)態(tài)頁(yè)面。
3、mysql:這是一款典型的關(guān)系型數(shù)據(jù)庫(kù),一般來(lái)說(shuō),大部分網(wǎng)站都會(huì)帶有數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ)。這個(gè)模塊主要是能夠用sql語(yǔ)句實(shí)現(xiàn)增刪改查,并且能用php+mysql開發(fā)一個(gè)增刪改查的管理系統(tǒng)。
4、python
搞安全經(jīng)常需要寫一些腳本或工具來(lái)進(jìn)行諸如密碼爆破、目錄掃描、攻擊自動(dòng)化等操作,需要一個(gè)方便且趁手的編程語(yǔ)言。你需要了解python基礎(chǔ)語(yǔ)法,能夠用python爬取網(wǎng)站上的信息(requests+BeautifulSoup+re)
5、burpsuite (必備的滲透工具)
重點(diǎn)學(xué)習(xí)Proxy、Repeater、Intruder三個(gè)模塊,分別用于抓包放包、重放包、爆破初步使用即可。能夠用burpsuite抓包改包、爆破用戶名密碼。
6、SQL注入
能夠手工注入出任意表的數(shù)據(jù),熟悉三種盲注的手法,能夠通過(guò)sql注入實(shí)現(xiàn)任意文件讀取和任意文件寫入,能夠自己編寫一個(gè)不含sql注入的查詢功能。
7、文件上傳
會(huì)寫php的webshell,明白webshell的原理,熟悉常見(jiàn)的文件上傳繞過(guò)方法(如過(guò)后綴檢測(cè)、過(guò)文件頭檢測(cè)、過(guò)MIME類型檢測(cè)),能夠自己編寫一個(gè)不含漏洞的上傳功能。
8、其他漏洞
以下四個(gè)為中期要掌握的漏洞
命令執(zhí)行(RCE):php常見(jiàn)的代碼執(zhí)行(eval)、命令執(zhí)行(system)函數(shù)
文件包含:file協(xié)議、php偽協(xié)議的利用
XSS:通過(guò)XSS獲取用戶cookie