CTF相關了解

2021-10-05 07:12:41 字數 2944 閱讀 3177

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

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

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

題目型別主要包含 web 網路攻防 、 re 逆向工程 、 pwn 二進位制漏洞利用 、 crypto 密碼攻擊以及 misc 安全雜項 這五個類別,個別比賽會根據題目型別進行擴充套件。

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

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

real world(rw) 首次於2023年長亭科技主辦的realworldctf**現,該賽制著重考察選手在面對真實的環境下的漏洞挖掘與利用能力。通常rw模式出題也會圍繞著能夠應用於真實滲透攻擊當中的漏洞,一般來說rw常見題型為vm/docker逃逸、針對瀏覽器的攻擊、針對iot/car等裝置的攻擊,web類攻擊等等 在rw賽制中會有乙個show time,當選手認為自己已經可以完成題目時,選手可以在比賽平台上提交展示申請,由工作人員根據申請先後順序進行展示排期。選手展示之前需要上台並連線相關網路,同時現場大屏會切換至目標的正常頁面。選手確認連線並測試ok之後開始計時。一般情況下上台攻擊的時間為5分鐘,選手一旦完成攻擊現場大螢幕會實時看到攻擊的效果,此時裁判會根據效果是否符合題目要求來判定該題是否完成。如5在攻擊時間內依然未能看到展示效果則認為本次攻擊失敗。現如今為了防止選手惡意排期。通常會有乙個隊伍總展示次數(例如在2023年數字經濟雲安全公測大賽中每個隊伍只允許上台展示30次),選手也需要盡可能保證上台之後攻擊的成功率 舉個例子。題目要求需要攻擊位於比賽網路中的某個**並將首頁替換為包含隊伍名稱的頁面。題目給出該**的一些資訊(源**/資料庫等等),選手經過本地挖掘漏洞之後,提交展示申請,排期到了之後進行上台展示。注意,因為rw模式是以展示效果來作為題目是否完成的準則,所以在rw模式中並不存在flag。

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

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

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

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等都是密碼學題目的常客。

有些時候也會給出乙個加密指令碼和密文,根據加密流程逆推出明文。

機器學習之基礎理論相關了解

一 基礎概念 學習起點 二 有監督學習 有監督學習的應用面仍然是最廣泛的,這是因為我們現實中遇到的很多問題都是希望對某個事物的某個屬性做出 而這些問題通過合理的抽象和變換,都可以轉化為有監督學習的問題。學習步驟如下 1 在學習複雜模型之前,先學習幾個最簡單的模型,典型的如樸素貝葉斯 樸素貝葉斯有很強...

arp協議和ICMP協議的相關了解

參考部落格 arp協議 icmp協議 以下內容都是從上面大神部落格中摘下的 arp協議 不管網路層使用的是什麼協議,在實際網路的鏈路上傳送資料幀時,最終還是必須使用硬體位址。每乙個主機都設有乙個 arp快取記憶體 arp cache 裡面有所在的區域網上的各主機和路由器的ip位址到硬體位址的對映表。...

CTF相關知識

理論題多見於國內比賽,通常為選擇題。包含單選及多選,選手需要根據自己所學的相關理論知識進行作答。最終得出分數。理論部分通常多見於初賽或是初賽之前的海選 不同的是這個解題模式一般會設定 一血 first blood 二血 second blood 三血 third blood 也即最先完成的前三支隊伍...