又一次搬家囉! https://blog.inndy.tw

over 2 years ago

一般人聽到 CTF 可能會有的反應大概就幾種:「那是什麼?」、「駭客的遊戲?聽起來好可怕」、「蛤?」,加上一個人打 CTF 太孤單,所以來寫這篇文章,向大家介紹 CTF!

所以 CTF 到底是殺小?

Capture The Flag,駭客的搶旗遊戲,Flag 通常就是一串文字,或是要達成指定的目標。

至於這個 Flag 要怎麼拿呢?基本上主辦方會架設一些有漏洞的服務系統,或者是含有漏洞的程式,又或者是把資訊隱藏在檔案裡面,挑戰者要想辦法用駭客攻擊的手法入侵系統,或者想辦法找出或解密藏在檔案或程式內隱藏的 Flag

CTF 的賽制

基本上可以分成四種:

Jeopardy

Jeopardy 會有多道題目可以解,題目常見類型如下:

misc

綜合題,什麼都有可能,雜七雜八無法分類通常就會算成這個

pwn

目標通常會是一個服務,有漏洞可以打下來,(大多時候)會給你那個 service 的 binary

bin (revsersing)

就是需要逆向工程,不限於執行檔,也遇過各種奇怪的檔案格式

web

就是 Web 啊,不解釋(?)

題型不出幾種:SQL Injection / Command Injection / Cookie / Race Condition,但是思考要很猥瑣才有辦法解題

crypto

密碼學啊不解釋(?)

  • RSA 是常考題,在 MMA CTC 2015 看到了 ECC....
  • AES 也常常出現
  • 各種奇怪的弱 cipher
  • 頻率分析
  • xor

stego

猜謎!猜謎!猜謎!

有些低品質的 CTF 根本就是在玩猜謎,所有題目有一大半都是 stego 也是有可能的

每一道題目解開都可以拿到一組 Flag ,輸入記分板之後可以換分數!
以上就是關於 Jeopardy 的介紹

Attack & Defense

每一組參賽者要維護一台主機,主機上面會跑多個服務,這些服務是由主辦方設計的,每個都含有漏洞,並且在主機上會放置有Flag,這組Flag會在每個回合由主辦發更新一次。

比賽方式

  • 入侵其他參賽者維護的主機,偷取Flag
  • 修補自己主機上的漏洞,防止其他參賽者偷取你的Flag
  • 把對手的Flag遞交到主辦單位的記分板就可以獲得額外分數
  • 如果成功守護自己的Flag也會有分數
  • 如果自己的Flag被偷走則拿不到分數

這樣的比賽模式相較 Jeopardy ,更為接近真實的攻防環境

King of the Hill

跟 Attack & Defense 有點類似,不過每個隊伍一開始不會擁有主機,而要把主辦方提供的主機打下來然後寫入自己的Flag(例如:改首頁),參賽者要守護已經打下來的主機,不被其他隊伍搶走,每個回合依照擁有主機的數量進行加分。

比起 Attack & Defense ,這是企業每天都真實上演,每天都要面對的狀況,更能模擬和考驗駭客在戰場上的實力

CGC

前陣子由美國國防部下屬單位(DARPA)主辦的 CTF 競賽,可以算是 Attack & Defense 的一種,但是多了一條規定,不可以由人類進行攻擊或修補漏洞,攻擊和修補必須寫程式來自動進行,人腦處理資訊的速度有限,但是電腦很快,把事情交給電腦作會是未來的發展方向

所以我說那個 CTF 戰隊呢?

台灣有不少實力堅強的戰隊、組織在打 CTF ,像是 台大217Lab、HackStuff、BambooFox ...等,都有好手齊聚一堂一起比賽,以前偶爾會跟 HackStuff 一起打比賽,後來比較少聯絡,這些隊伍都很厲害也很頂尖,但是也就只有這幾個隊伍上的了檯面,加上台科和TDoH的戰力都不太夠,而且強大的隊伍都已經夠強大了,加上一個人打CTF實在太無力,又難以拿下名次,所以打算成立一個CTF戰隊來培養實力,尋找戰友!

 _____ ___  ____  __  __   ____ _____ _____   _____ _____    _    __  __
|  ___/ _ \|  _ \ \ \/ /  / ___|_   _|  ___| |_   _| ____|  / \  |  \/  |
| |_ | | | | |_) | \  /  | |     | | | |_      | | |  _|   / _ \ | |\/| |
|  _|| |_| |  _ <  /  \  | |___  | | |  _|     | | | |___ / ___ \| |  | |
|_|   \___/|_| \_\/_/\_\  \____| |_| |_|       |_| |_____/_/   \_\_|  |_|

  ___           _             ___  __   __
 / __|___ _ __ / |_ _  __ _  | __|/  \ /  \ _ _
| (__/ _ \ '  \| | ' \/ _` | |__ \ () | () | ' \ _ _ _ _
 \___\___/_|_|_|_|_||_\__, | |___/\__/ \__/|_||_(_|_|_|_)
                      |___/
← Cleanest way to host static files using nodejs 花了兩個小時幫 bottle.py 修了一個 bug →
 
comments powered by Disqus