iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 2
3

CTF 簡介

  • Capture The Flag
  • 駭客的搶旗遊戲
  • 學習資訊安全攻擊/防禦的競賽
  • 利用執行在目標電腦中的應用程式漏洞取得Flag
  • 解密藏在檔案或程式中的 Flag
  • Flag 通常就是一串文字

CTF 賽制

Jeopardy

  • 透過主辦方出題目,會有各種類型的題目,每種類型可能會有數道題目,越難題目分數越高
  • 線上賽居多,參與隊伍數、各隊人數較無限制
  • 「CTF 題目類型」的介紹主要也以這個為主。

Attack & Defense

各隊參賽者有自己的主機,主機上執行著各種有漏洞的服務。

  • Attack
    透過分析主機上的服務,找到漏洞利用方式並撰寫攻擊程式 (exploit),入侵其他參賽者維護的主機。
  • Defense
    修補自己主機上的漏洞,防止他人偷取你的 Flag。

偷取 Flag 遞交到主辦單位記分板可獲得額外分數,如果成功守護自己的 Flag 也會有分數,但若自己的 Flag 被偷走則拿不到分數。

King of the Hill

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

CTF 題目類型

Reverse 逆向工程類型

  • 逆向⼯程 / 拆遊戲 / 拆程式 / 把組合語⾔變回C / 拆⼿機APP / 破解 / 繞過驗證
  • 通常由主辦方給一個或多個Binary, 過關所需要的Key通常加密藏在執行檔裡,要將程式逆向分析出後才能找出。

流程

  1. 參賽者會拿到一個程式(binary)

  2. 沒有完整原始法的前提分析

  3. 找到隱藏的資訊或改變程式流程

  4. 反組譯程式

    int a = 1;
    if (a == 87)
        getFlag();
    else
        print("no flag");
    

分析

  • 靜態分析(Static Analysis)

    • 不執行程式,單純從反組譯出的程式碼、組合語言、程式流程圖、Global & Static data 等進行分析
  • 動態分析(Dynamic Analysis)

    • 直接執行程式,並根據當下程式執行狀況、Registers(暫存器)和Memory(記憶體)中的值進行分析

Pwnable 弱點或漏洞分析類型

  • 主辦方會給一個有弱點的程式或 Server 執行檔,主辦方自己會開一台伺服器跑該服務,參賽者要透過靜態分析與動態分析來找出該程式的弱點。例如: Buffer overflow、命令注入等,在遠端伺服器利用漏洞來執行任意指令,進一步取得存在遠端伺服器的金鑰。

流程:

分析 ( analysis ) → 找尋漏洞 ( bug ) → 撰寫攻擊程式 ( exploit )

Exploit

  • 利用程式漏洞進而獲得主機控制權(get shell)

Web Security

  • 獲取資訊或不合法登入或取得對方主機

流程:

  1. 分析網頁架構

    • 框架(framework)、撰寫語言之套性、作業系統
    • 舊版本已知漏洞、新版本未修補漏洞
  2. 找尋可控輸入與漏洞

    • 網址(POST、GET)、使用者輸入(login)、檔案上傳
  3. 攻擊

    • XSS, SQL Injection, File Inclusion, Command Injection, …etc
    • OWASP Top 10

Crypto 加解密類型

  • 主辦方會給加密過的密文、加密程式,參賽者必須分析加解密演算法甚至需要找出演算法的弱點來破解出真正的明文。

雜湊

  • SHA、MD5

金鑰加密

  • AES、DES(對稱性加密)
  • RSA(非對稱性加密)

常用工具

  • 解密網站
  • OpenSSL
  • rsatool

Forensic 鑑識類型

  • 主辦方會要求參賽者從封包、Log、 Memory Dump、Disk Image、VM image等鑑識出隱藏在之中的金鑰。
  • 資訊隱藏學(Steganography)
  • 數位鑑識
  • 看Log、記憶體、封包
    • 分析封包內的摘要及詳細資訊
    • 工具:Wireshark

Misc 綜合類型

  • 沒有較明確的分類:像是給個遊戲要想辦法作弊破到幾百萬分、給一個壞掉的 QR code 嘗試修復,或是給張圖片要找出相關的人事物等。
  • 組合題

CTF 學習資源

  • LiveOverflow - 應該是 youtube 上最棒的 hacking 教學了,從最簡單的到很深入的都有,並且有許多系列的課程,只可惜需要練英聽。

  • Bamboofox - 臺灣良心,有講義有課程錄影,也有題目讓你練習( Pwn 多一些),還是中文資源。

  • HACKSPLAINING - Web 漏洞教學,非常簡單好懂,網站很精美!

  • RE for beginners - Reversing 教學,網路有中文版,不過太大本很難啃,但對於沒什麼逆向基礎的來說可以很有系統化的學。

  • angelboy youtube - 臺灣 Pwn 大神 youtube 頻道,影片看完後 pwn 基礎應該就都懂了。

  • CTF TIME

  • GitHub - CTFs

  • HITCON Knowledge Base

  • pwnable

  • Wargames

  • W3Challs


CTF 網站

綜合

  • hackme - 也是臺灣人架的,什麼類型題目都有。
  • pwnable.kr - 綜合pwn題目,應該是pwn領域最知名的網站。
  • RingZer0 CTF - 題目的種類應該是最豐富的。

入門

  • picoCTF - 設計給高中生玩的,超級精美,非常好入門。
  • overthewire - 沒有linux基礎的非常適合玩這個,不但教資安也會教linux。

偏難

奇奇怪怪


上一篇
『 Day 1 』前言 & 期許
下一篇
『 Day 3 』Web Security - 認識 OWASP & A1 . Injection
系列文
到處挖坑,現在該來還(填)願(坑)ㄌ !!!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
kevineck
iT邦新手 5 級 ‧ 2019-09-18 23:35:27

期待第30篇

0
kevin870504
iT邦新手 5 級 ‧ 2024-06-09 16:46:23

感謝分享!很棒的整理~

我要留言

立即登入留言