iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 1
3
Security

CTF 的三十道陰影系列 第 1

Day1: [Misc] What is CTF ?

前言


雖然現在介紹 CTF 的文章已經非常多了,但避免有讀者只看過 <親愛的,熱愛的> 導致對 CTF 有些錯誤的幻想,因此還是先在第一天簡介一下什麼是 CTF,也順便以我自己這些年參賽的觀點補充一下對 CTF 的感想 (已經過了黃金年齡 QQ)

What is CTF?


CTF,全名為 Capture The Flag,名稱源自於模擬戰爭遊戲中的搶旗模式,現今主要指一種模擬入侵與防禦的遊戲,參賽隊伍必須以入侵、分析封包、破解密碼等各種手段獲得 flag,並提交至公正第三方以獲得分數,flag 的形式通常會是一個 printable 的字串,可能會是一個有意義的句子 (通常跟題目本身有關係),也可能單純只是一串 hash,在現實世界中被取得 flag 等同於被偷走機密資料 (密碼或 private key)。

CTF 的模式主要分為三種,分別是 JeopardyAttack & DefenseKing of the Hill,三者的題目類型和規則略有不同,但皆以獲得 flag 為主要目的;透過 CTF 可以在遊戲中學習資訊安全相關知識,避免真實攻擊別人時造成危害及觸犯法律,達到寓教於樂的目的。

  • Jeopardy
    • 最常見的 CTF 模式,也是對主辦方來說負擔最輕鬆的類型...XD
    • 通常會把題目分成六大類型:pwn, reverse, web, crypto, forensic, misc
      • 題目類型留之後再介紹 XD
    • 拿到 flag 之後送到網頁,就可以取得該題目的分數
    • 最高分的隊伍獲勝,如果同分通常按照送 flag 的順序決定名次
  • Attack & Defense
    • 參賽隊伍需要維護一台上面跑著數個服務的主機,要一面找出漏洞,並進一步修補服務的漏洞,也要一面寫出漏洞的利用方式,對其他隊伍進行攻擊
      • 通常利用 binary patch 的方式修補漏洞,少部分 web 類型題目可直接更改 source code
      • 參賽隊伍通常只有 normal user 的權限,沒辦法以系統層級的手段進行防禦
        • 我是說在座允許用 iptables 防禦的 CTF 都是垃圾
    • 每回合會更新主機上的 flag,一回合通常是 5min (根據主辦方規則而定),參賽者取得某個隊伍的 flag 後往 scoreboard 送就可以取得這回合的分數,同時該隊伍會扣除相同的分數
      • 如果有多個隊伍同時攻擊成功,則平分回合分數,被攻擊方只會扣除一次回合分數
    • 通常會舉辦線下賽,目前唯一知道的例外是 RuCTFe
    • 最貼近現實世界網路攻防的模式,但辦起來真的麻煩,現在越來越少隊伍願意辦這種比賽了 QQ
  • King of the Hill
    • KoH 模式的規則比較不一定,根據主辦方的規則會有很大的差異,但共通概念是只有部分隊伍能獲得分數,甚至只有第一名的隊伍才能得分
      • 因此能先解題取得分數的隊伍會有優勢
    • 以去年 DEFCON CTF 的例子 doublethink 為例,是比哪個隊伍寫的 shellcode 可以跑在比較多的平台,最多的隊伍獲得 10 分,其次依序獲得 5、3、2、1 分,第五名之後的隊伍沒有分數
    • 也有的題目類型是要取得遊戲主機的權限後,把 team token 寫到網頁首頁上

0x00: Hack The Planet

先說結論,這題的 flag 就是 hack the planet,在很多 CTF 比賽都出過這題,最早應該是源自於 DEFCON CTF,印象中以前的 HITCON wargame 也有出過 XD

CTF 比賽通常會有一題打卡題,用來區分哪些註冊的隊伍是真的有在看比賽,打卡題沒有什麼技術含量,只要猜到主辦方的巧思就可以知道或找到 flag 在哪,而 hack the planet 是資安圈一個耳熟能詳的 slogan,因此經常被拿來作為打卡題的題目,有經驗的隊伍一看就知道答案,而初次參加的隊伍,也有機會透過 google 搜尋到答案

主辦方會利用打卡題來發揮一些創意,比如說去年 HITCON CTF 2018,flag 其實就放在題目敘述上,只是將字體調到非常小沒辦法直接看見,字體會隨著解題人數而慢慢變大,所以越後面的隊伍越容易過打卡題 XD


下一篇
Day2: [Crypto] CTF 題型分類
系列文
CTF 的三十道陰影31

尚未有邦友留言

立即登入留言