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 通常僅包含Web
及Pwn
兩種類型的題目。每個隊伍可能會分到多個 GameBox,隨著比賽的進行,最早的 GameBox 可能會下線,同時會上線新的 GameBox。
ADP - 攻防增強#
Attack Defense Plus (ADP) 全稱攻防增強模式,在該模式下中,參賽隊伍連接到同一個網絡空間。主辦方會在平台上放置題目,選手需要登錄到平台獲得題目信息
攻擊模式下,平台會給出題目的訪問鏈接,選手按照解題模式做題提交 flag 即可完成攻擊,當完成攻擊後, 每輪計算分數時均會計算該題目的攻擊得分。
防禦模式下,選手需要自行挖掘題目的漏洞,並製作漏洞補丁包上傳至平台,之後點擊驗證。驗證時平台會新建一個完全乾淨的題目環境,使用預置的 Exploit 進行攻擊,若攻擊成功當驗證通過之後(即已經完成修補),每輪計算分數均會認為該題目已防禦。
也就是說,對於每個題目,僅需要攻擊成功一次,防禦成功一次,該題就可以認為已完成,後續無需進行關注。
ADP 通常僅包含Web
及Pwn
兩種類型的題目。隨著比賽的進行,最早的題目可能會下線,後續也有可能會上線新的題目。
ADP 相較於 AwD 來說,選手無須編寫批量攻擊腳本,也無需關注題目的環境是否被攻擊,是否服務異常等等,要做的只是攻擊一次,防禦一次,選手可以有更多的時間聚焦於還未完成的題目。從主辦方的角度來說,大大減輕了比賽的硬件成本和運維成本。
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#
ctfhub{d452bfcf91e0a1f8e4a1b26a03c59c9c}
本文作者: CTFHub
本文鏈接: https://writeup.ctfhub.com/Skill/ 基礎知識 /mmJYyc569kAXHvfam4qont.html