CTF簡介


什么是CTF

CTF(Capture The Flag,奪旗賽)CTF 的前身是傳統黑客之間的網絡技術比拼游戲,起源於 1996 年第四屆 DEFCON,以代替之前黑客們通過互相發起真實攻擊進行技術比拼的方式。 CTF是一種流行的信息安全競賽形式,其英文名可直譯為“奪得Flag”,也可意譯為“奪旗賽”。其大致流程是,參賽團隊之間通過進行攻防對抗、程序分析等形式,率先從主辦方給出的比賽環境中得到一串具有一定格式的字符串或其他內容,並將其提交給主辦方,從而奪得分數。為了方便稱呼,我們把這樣的內容稱之為“Flag”。 flag所表示的為目標服務器上存儲的一些敏感機密的信息, 這些信息正常情況下是不能對外暴露的。選手利用目標的一些漏洞,獲取到flag,其表示的即為在真實的黑客攻擊中竊取到的機密信息。 一般情況下flag擁有固定格式為flag{xxxxx},有些比賽會把flag關鍵詞替換,通常來說CTF是以團隊為單位進行參賽。每個團隊3-5人(具體根據主辦方要求決定),在整個比賽過程中既要每個選手擁有某個方向的漏洞挖掘能力,也要同隊選手之間的相互配合。

競賽模式

CTF競賽模式具體分為以下幾類:

理論知識

理論題多見於國內比賽,通常為選擇題。包含單選及多選,選手需要根據自己所學的相關理論知識進行作答。最終得出分數。理論部分通常多見於初賽或是初賽之前的海選。

Jeopardy-解題

參賽隊伍可以通過互聯網或者現場網絡參與,參數隊伍通過與在線環境交互或文件離線分析,解決網絡安全技術挑戰獲取相應分值,類似於 ACM 編程競賽、信息學奧林匹克賽,根據總分和時間來進行排名。

不同的是這個解題模式一般會設置 一血(First Blood) 、 二血(Second Blood) 、 三血(Third Blood) ,也即最先完成的前三支隊伍會獲得額外分值,所以這不僅是對首先解出題目的隊伍的分值鼓勵,也是一種團隊能力的間接體現。

當然還有一種流行的計分規則是設置每道題目的初始分數后,根據該題的成功解答隊伍數,來逐漸降低該題的分值,也就是說如果解答這道題的人數越多,那么這道題的分值就越低。最后會下降到一個保底分值后便不再下降。一般稱之為動態積分

題目類型主要包含 Web 網絡攻防 、 RE 逆向工程 、 Pwn 二進制漏洞利用 、 Crypto 密碼攻擊以及 Misc 安全雜項 這五個類別,個別比賽會根據題目類型進行擴展。

AwD-攻防模式

Attack with Defense(AwD)全稱攻防模式,在攻防模式CTF賽制中,參賽隊伍連接到同一個網絡空間。主辦方會預先為每個參賽隊分配要防守的主機,該主機稱之為GameBox,每個隊伍之間的GameBox配置及漏洞是完全一致的,選手需要防護自己的GameBox不被攻擊的同時挖掘漏洞並攻擊對手服務來得分。在AwD中主辦方會運行一個名為Checker的程序定時檢測選手的GameBox的運行狀態。若檢測到狀態不對則判定該GameBox宕機,按照規則扣除一定分數。攻防模式CTF賽制可以實時通過得分反映出比賽情況,最終也以得分直接分出勝負,是一種競爭激烈,具有很強觀賞性和高度透明性的網絡安全賽制。在這種賽制中,不僅僅是比參賽隊員的智力和技術,也比體力(因為比賽一般都會持續24至48小時左右),同時也比團隊之間的分工配合與合作。 AwD通常僅包含WebPwn兩種類型的題目。每個隊伍可能會分到多個GameBox,隨着比賽的進行,最早的GameBox可能會下線,同時會上線新的GameBox。

RHG-自動化[ AI自動化]

Robo Hacking Game(RHG)該利用人工智能或是AI或是自動化攻擊程序來全自動的挖掘並利用漏洞,考驗選手對於漏洞理解以及工程化能力。比賽開始前(一般為1-4周左右)主辦方會給出測試環境以及相關接口文檔。選手需要編寫自動化程序來請求接口獲取題目相關信息,該類程序通常稱之為bot,在程序中全自動訪問並挖掘目標漏洞,完成利用漏洞攻擊並獲取flag的過程。獲取到的flag也由程序自動化提交。RHG因為是由bot全自動進行工作,所以比賽開始即可視為結束。剩下的一切全看參賽選手編寫的自動化bot的工作情況。 比賽過程中不允許選手對bot進行任何的操作(包括debug/patch等等)。選手僅能看到自己的bot完成了哪些題。目前的得分情況等等。

RW-真實世界

Real World(RW) 首次於2018年長亭科技主辦的RealWorldCTF中出現,該賽制着重考察選手在面對真實的環境下的漏洞挖掘與利用能力。通常RW模式出題也會圍繞着能夠應用於真實滲透攻擊當中的漏洞,一般來說RW常見題型為VM/Docker逃逸、針對瀏覽器的攻擊、針對IoT/Car等設備的攻擊,Web類攻擊等等 在RW賽制中會有一個Show Time,當選手認為自己已經可以完成題目時,選手可以在比賽平台上提交展示申請,由工作人員根據申請先后順序進行展示排期。選手展示之前需要上台並連接相關網絡,同時現場大屏會切換至目標的正常頁面。選手確認連接並測試OK之后開始計時。一般情況下上台攻擊的時間為5分鍾,選手一旦完成攻擊現場大屏幕會實時看到攻擊的效果,此時裁判會根據效果是否符合題目要求來判定該題是否完成。如5在攻擊時間內依然未能看到展示效果則認為本次攻擊失敗。現如今為了防止選手惡意排期。通常會有一個隊伍總展示次數(例如在2019年數字經濟雲安全公測大賽中每個隊伍只允許上台展示30次),選手也需要盡可能保證上台之后攻擊的成功率 舉個例子。題目要求需要攻擊位於比賽網絡中的某個網站並將首頁替換為包含隊伍名稱的頁面。題目給出該網站的一些信息(源代碼/數據庫等等),選手經過本地挖掘漏洞之后,提交展示申請,排期到了之后進行上台展示。注意,因為RW模式是以展示效果來作為題目是否完成的准則,所以在RW模式中並不存在Flag

KoH-搶占山頭

King of Hill(KoH)是近些年新衍生的一種賽制。該賽制有點類似於AwD,但是又和AwD有些不一樣。選手面對的是一個黑盒的目標,需要先挖掘漏洞並利用漏洞控制目標。將自己的隊伍標識(隊伍名稱或是Token之類)寫入到指定文件。隨后在該主機上進行加固等操作防止其他隊伍攻擊,主辦方會定期去檢查標識文件,根據文件中的隊伍標識來判定本回合分數給予哪個隊伍。可以看出KoH也是一種對抗極為激烈的賽制,同時考察選手的滲透能力及防御加固能力。

Mix[混合]

混合模式結合了以上多種模式,現如今單一的賽制已經無法滿足比賽及選手的參賽需求,所以大部分比賽會同時以多個模式進行比賽。例如參賽隊伍通過解題(Jeopardy)可以獲取一些初始分數,然后通過攻防對抗(AwD)進行得分增減的零和游戲,最終以得分高低分出勝負。

比賽模式

線上

選手通過主辦方搭建的比賽平台在線注冊,在線做題並提交flag,線上比賽多為解題模式,攻防模式較為少見。通常來說對於長時間未解出的題目,主辦方會酌情給出提示(Hint)來幫助選手做題。

線下

選手前往比賽所在地,現場接入比賽網絡進行比賽,線下多為AWD模式,近年來隨着比賽賽制的不斷革新,線下賽也會出現多種模式混合進行,例如結合解題+AWD,解題+RW 等等。

題目類型

正文

在CTF中主要包含以下5個大類的題目,有些比賽會根據自己的側重點單獨添加某個分類,例如移動設備(Mobile)電子取證(Forensics)等,近年來也會出來混合類型的題目,例如在Web中存在一個二進制程序,需要選手先利用Web的漏洞獲取到二進制程序,之后通過逆向或是Pwn等方式獲得最終flag。

Web

Web類題目大部分情況下和網、Web、HTTP等相關技能有關。主要考察選手對於Web攻防的一些知識技巧。諸如SQL注入XSS代碼執行代碼審計等等都是很常見的考點。
一般情況下Web題目只會給出一個能夠訪問的URL。部分題目會給出附件。

Pwn

Pwn類題目重點考察選手對於二進制漏洞的挖掘和利用能力,其考點也通常在堆棧溢出格式化漏洞UAFDouble Free等常見二進制漏洞上。選手需要根據題目中給出的二進制可執行文件進行逆向分析,找出其中的漏洞並進行利用,編寫對應的漏洞攻擊腳本(Exploit),進而對主辦方給出的遠程服務器進行攻擊並獲取flag
通常來說Pwn類題目給出的遠程服務器信息為nc IP_ADDRESS PORT,例如nc 1.2.3.4 4567這種形式,表示在1.2.3.4這個IP的4567端口上運行了該題目。

Reverse

Re類題目考察選手逆向工程能力。題目會給出一個可執行二進制文件,有些時候也可能是Android的APK安裝包。選手需要逆向給出的程序,分析其程序工作原理。最終根據程序行為等獲得flag。

Crypto

Crypto類題目考察選手對密碼學相關知識的了解程度,諸如RSAAESDES等都是密碼學題目的常客。
有些時候也會給出一個加密腳本和密文,根據加密流程逆推出明文。

Misc

Misc意為雜項,即不包含在以上分類的題目都會放到這個分類。題目會給出一個附件。選手下載該附件進行分析,最終得出flag
常見的題型有圖片隱寫、視頻隱寫、文檔隱寫、流量分析、協議分析、游戲、IoT相關等等。五花八門,種類繁多。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM