理論題多見於國內比賽,通常為選擇題。包含單選及多選,選手需要根據自己所學的相關理論知識進行作答。最終得出分數。理論部分通常多見於初賽或是初賽之前的海選
不同的是這個解題模式一般會設定 一血(first blood) 、 二血(second blood) 、 三血(third blood) ,也即最先完成的前三支隊伍會獲得額外分值,所以這不僅是對首先解出題目的隊伍的分值鼓勵,也是一種團隊能力的間接體現。
當然還有一種流行的計分規則是設定每道題目的初始分數後,根據該題的成功解答隊伍數,來逐漸降低該題的分值,也就是說如果解答這道題的人數越多,那麼這道題的分值就越低。最後會下降到乙個保底分值後便不再下降。一般稱之為動態積分
題目型別主要包含 web 網路攻防 、 re 逆向工程 、 pwn 二進位制漏洞利用 、 crypto 密碼攻擊以及 misc 安全雜項 這五個類別,個別比賽會根據題目型別進行擴充套件。
attackwithdefense(awd)全稱攻防模式,在攻防模式ctf賽制中,參賽隊伍連線到同乙個網路空間。主辦方會預先為每個參賽隊分配要防守的主機,該主機稱之為gamebox
,每個隊伍之間的gamebox配置及漏洞是完全一致
的,選手需要防護自己的gamebox不被攻擊的同時挖掘漏洞並攻擊對手服務來得分。在awd中主辦方會執行乙個名為checker
的程式定時檢測選手的gamebox的執行狀態。若檢測到狀態不對則判定該gamebox宕機,按照規則扣除一定分數。攻防模式ctf賽制可以實時通過得分反映出比賽情況,最終也以得分直接分出勝負,是一種競爭激烈,具有很強觀賞性和高度透明性的網路安全賽制。在這種賽制中,不僅僅是比參賽隊員的智力和技術,也比體力(因為比賽一般都會持續24至48小時左右),同時也比團隊之間的分工配合與合作。 awd通常僅包含web
及pwn
兩種型別的題目。每個隊伍可能會分到多個gamebox,隨著比賽的進行,最早的gamebox可能會下線,同時會上線新的gamebox。
robohackinggame(rhg)該利用人工智慧或是ai或是自動化攻擊程式來全自動的挖掘並利用漏洞,考驗選手對於漏洞理解
以及工程化
能力。比賽開始前(一般為1-4周左右)主辦方會給出測試環境以及相關介面文件。選手需要編寫自動化程式來請求介面獲取題目相關資訊,該類程式通常稱之為bot
,在程式中全自動
訪問並挖掘目標漏洞,完成利用漏洞攻擊並獲取flag的過程。獲取到的flag也由程式自動化提交。rhg因為是由bot全自動進行工作,所以比賽開始即可視為結束。剩下的一切全看參賽選手編寫的自動化bot的工作情況。 比賽過程中不允許選手對bot進行任何的操作(包括debug/patch等等)。選手僅能看到自己的bot完成了哪些題。目前的得分情況等等。
realworld(rw) 首次於2023年長亭科技
主辦的realworldctf**現,該賽制著重考察選手在面對真實的環境下的漏洞挖掘與利用能力。通常rw模式出題也會圍繞著能夠應用於真實滲透攻擊當中的漏洞,一般來說rw常見題型為vm/docker逃逸、針對瀏覽器的攻擊、針對iot/car等裝置的攻擊,web類攻擊等等 在rw賽制中會有乙個show time
,當選手認為自己已經可以完成題目時,選手可以在比賽平台上提交展示申請,由工作人員根據申請先後順序進行展示排期。選手展示之前需要上台並連線相關網路,同時現場大屏會切換至目標的正常頁面。選手確認連線並測試ok之後開始計時。一般情況下上台攻擊的時間為5分鐘
,選手一旦完成攻擊現場大螢幕會實時看到攻擊的效果,此時裁判會根據效果是否符合題目要求來判定該題是否完成。如5在攻擊時間內依然未能看到展示效果則認為本次攻擊失敗。現如今為了防止選手惡意排期。通常會有乙個隊伍總展示次數(例如在2023年數字經濟雲安全公測大賽中每個隊伍只允許上台展示30次),選手也需要盡可能保證上台之後攻擊的成功率 舉個例子。題目要求需要攻擊位於比賽網路中的某個**並將首頁替換為包含隊伍名稱的頁面。題目給出該**的一些資訊(源**/資料庫等等),選手經過本地挖掘漏洞之後,提交展示申請,排期到了之後進行上台展示。注意,因為rw模式是以展示效果來作為題目是否完成的準則,所以在rw模式中並不存在flag
。
kingofhill(koh)是近些年新衍生的一種賽制。該賽制有點類似於awd,但是又和awd有些不一樣。選手面對的是乙個黑盒的目標,需要先挖掘漏洞並利用漏洞控制目標。將自己的隊伍標識(隊伍名稱
或是token
之類)寫入到指定檔案。隨後在該主機上進行加固等操作防止其他隊伍攻擊,主辦方會定期去檢查標識檔案,根據檔案中的隊伍標識來判定本回合分數給予哪個隊伍。可以看出koh也是一種對抗極為激烈的賽制,同時考察選手的滲透能力及防禦加固能力。
混合模式結合了以上多種模式,現如今單一的賽制已經無法滿足比賽及選手的參賽需求,所以大部分比賽會同時以多個模式進行比賽。例如參賽隊伍通過解題(jeopardy)可以獲取一些初始分數,然後通過攻防對抗(awd)進行得分增減的零和遊戲,最終以得分高低分出勝負。
ctf比賽一般分為線上賽和線下賽。通常來說,線上賽多為初賽
, 線下賽多為決賽
, 但是也不排除直接進行
選手前往比賽所在地,現場接入比賽網路進行比賽,線下多為awd模式,近年來隨著比賽賽制的不斷革新,線下賽也會出現多種模式混合進行,例如結合解題+awd,解題+rw等等
在ctf中主要包含以下5個大類的題目,有些比賽會根據自己的側重點單獨新增某個分類,例如移動裝置(mobile)
,電子取證(forensics)
等,近年來也會出來混合型別的題目,例如在web中存在乙個二進位制程式,需要選手先利用web的漏洞獲取到二進位制程式,之後通過逆向或是pwn等方式獲得最終flag
web類題目大部分情況下和網、web、http等相關技能有關。主要考察選手對於web攻防的一些知識技巧。諸如sql注入
、xss
、**執行
、**審計
等等都是很常見的考點。
一般情況下web題目只會給出乙個能夠訪問的url。部分題目會給出附件
pwn類題目重點考察選手對於二進位制漏洞的挖掘和利用
能力,其考點也通常在堆疊溢位
、格式化漏洞
、uaf
、double free
等常見二進位制漏洞上。選手需要根據題目中給出的二進位制可執行檔案進行逆向分析,找出其中的漏洞並進行利用,編寫對應的漏洞攻擊指令碼(exploit
),進而對主辦方給出的遠端伺服器進行攻擊並獲取flag
通常來說pwn類題目給出的遠端伺服器資訊為nc ip_address port
,例如nc 1.2.3.4 4567
這種形式,表示在1.2.3.4
這個ip的4567
埠上執行了該題目
re類題目考察選手逆向工程
能力。題目會給出乙個可執行二進位制檔案,有些時候也可能是android的apk安裝包。選手需要逆向給出的程式,分析其程式工作原理。最終根據程式行為等獲得flag
crypto類題目考察選手對密碼學
相關知識的了解程度,諸如rsa
、aes
、des
等都是密碼學題目的常客。
有些時候也會給出乙個加密指令碼和密文,根據加密流程逆推出明文。
CTF相關了解
理論題多見於國內比賽,通常為選擇題。包含單選及多選,選手需要根據自己所學的相關理論知識進行作答。最終得出分數。理論部分通常多見於初賽或是初賽之前的海選 不同的是這個解題模式一般會設定 一血 first blood 二血 second blood 三血 third blood 也即最先完成的前三支隊伍...
CTF相關的學習平台
ctf比賽主要表現以下幾個技能上 逆向工程 密碼學 acm程式設計 web漏洞 二進位制練習 網路和取證。可以從中選擇並關注乙個你已經上手的技能方向。web pwn re mobile crypto 1 4 相關 及論壇 1 實驗吧 自己有賬號 2 看雪學院 3 ctf社群 4 知乎帖 針對ctf,...
CTF相關 訓練第二題
一 關卡描述 請通過獲取本地密碼工具獲取本機administrator賬戶lm雜湊值,即本題key。二 思路分析 本題過程很明確,在登入進系統的情況下,利用工具獲取administrator賬戶去獲取密碼雜湊值。三 解題過程 1.進入winxp虛擬機器,預設密碼123456 2.在c tools 獲...