CTF基础知识

CTF词语

  • 师傅 CTF圈子中,CTFer们通常以”师傅”相互称呼。
  • WriteUp 又称作WP,是记录CTF比赛中解题过程的文章,通常包含题目描述、解题思路、解题过程、源码分析、脚本分析等内容。
  • 一把梭 代指一类解题过程或者方法,一般指将题目中给出的 对应的附件 / 代码 / 密文 等,直接丢到某个工具或者网站上,就能得到flag的解题方法。
  • 套娃 一是指一些题目比如说加密题,嵌套了多层的加密,需要多次解密才能得到flag,即一道题中可能涉及到多个知识点的考察 ; 二是带有一定贬义意义,通常指出题人只是为了出题人而出题 单纯的 一味的 向题目中叠加trick 导致本来就不新颖的题目还变得更加复杂,使得题目的难度无意义的变高。

CTF (Capture The Flag)

中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过相发起真实攻击进行技术比拼的方式。CTF有个人赛和团队赛,在主流比赛中多为团队赛,通常分为五个方向:MISC、CRYPTO、WEB、REVERSE、PWN;CTF赛制分多种,常见的为线上解题赛、线下awd模式、线下awd plus模式等。

赛制

  • 线上解题制:目前大多数国内外CTF比赛的主流形式,选手自由组队参赛。题目通常在比赛过程中陆续放出。解出一道题目后,提交题目对应的flag即可得分,比赛结束时分高者获胜。
  • 线下awd制:通常为现场比赛,多数CTF决赛的比赛形式,选手自由组队参赛。相比于解题模式,时间更短,比赛中更注重临场反应和解题速度,需要能够快速攻击目标主机的权限,考察团队多方面的综合安全能力。
  • 线下awd plus制(AWDP):静态攻防赛,也可以成为解题+加固赛,参赛队伍无法直接攻击其他队伍,只有每回合算分和其他队伍有关。参赛战队可以直接对其他队伍gamebox发起攻击,通过ssh登录加固自己gamebox。

五大基本方向

  • MISC:安全杂项涉及到古典密码学、编码、隐写术、电子取证、数据分析等广度极高的安全手段及利用方法,选手需要确定手段或者方法,反向的去破译取证从而拿到flag,MISC是CTF比赛中广度最高的方向,需要各个方向都有涉猎。

    ——嗯?题不知道丢哪?没事丢杂项就好!

  • CRYPTO:密码学简单讲就古典密码和现代密码,当然大多数古典密码的题目目前都被划分到MISC中,目前的密码学反而更偏向现代密码学,常出现分组密码、流密码和公钥密码体制的考察,对初等数学、基本的数论有一定需求。选手通常被给予一个加密程序,抹去明文之后留下的加密过程和输出,要求选手通过密码体制的弱点来还原flag。

    ——听说Oi爷又AK了!

  • WEB:题目常见的漏洞类型包括注入、XSS、文件包含、代码执行、上传、SSRF等,选手通过漏洞直接或者间接拿到shell或者得到某些关键文件从而得到flag。

    ——汪汪汪

  • REVERSE:逆向工程﹑涉及到win和linux软件逆向,对已经编译完成的可执行文件进行分析,研究程序的行为和算法,然后以此为依据,计算出出题人想隐藏的flag

    ——逆��

  • PWN:二进制攻击涉及到栈溢出、堆溢出、格式化字符串漏洞等常规的二进制漏洞,选手需要借助这些漏洞获取计算机权限,从而拿到flag

    ——*PWN!*(指声音

  • 新的方向如 Blockchain(区块链) Ai(Ai安全)iOT(物联网)等的加入

✨MISC

考点:

  • Osint

  • 编码转换 / 古典密码

  • 隐写

    • 图片隐写
    • 音频隐写
    • 视频隐写
  • 取证

    • 流量分析
    • 磁盘取证
    • 内存取证
    • 日志分析取证

✨Web

考点:

  • 泄露
  • 注入
  • 序列化 及 反序列化
  • 文件包含
  • 文件上传
  • 命令执行
  • XSS
  • SSRF
  • 逃逸

✨Crypto

  • 古典密码学
  • 现代密码学

✨Revese

  • 可执⾏文件

  • C/C++ 基础

    • “不要学会了基础才去学基础能做什么” 在你掌握了大部分内容就可以开始实践了,这时候打开你的OD 就可以开始对程序进行分析了 我们鼓励在实践中学习
  • 汇编语言基础

    • 寄存器 内存 寻址

    • x86/x64 汇编

    • 反汇编 以及 反汇编算法

    • 调⽤约定

    • 变量 区分处理局部变

✨PWN

  • 栈溢出Ret2xxx系列各种ROP
  • 格式化字符串
  • 堆的各种漏洞
  • IO文件劫持和利用
  • 整数溢出,type溢出
  • 汇编
  • C / CPP
  • 编译原理
  • Linux
  • python

CTF平台

国内平台(排名不分先后)

https://www.nssctf.cn/index

https://buuoj.cn/

https://ctf.show/

https://adworld.xctf.org.cn/home/index

https://www.qsnctf.com/

https://www.ctfhub.com/#/index

https://ctf.bugku.com/

国外平台(排名不分先后)

https://pwn.college/

https://overthewire.org/wargames/

https://www.vulnhub.com/

https://www.hackthebox.com/

https://www.hacksplaining.com/lessons

https://defendtheweb.net/

https://exploit.education/

https://cmdchallenge.com/

https://attackdefense.com/

https://cryptohack.org/

https://letsdefend.io/

https://cyberdefenders.org/blueteam-ctf-challenges/

https://cryptopals.com/

https://w3challs.com/

学习资源

【CTF快速入门手册】https://github.com/ProbiusOfficial/CTF-QuickStart