一、CTF 简介
CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF 起源于 1996 年 DEFCON 全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式。
CTF 入门
个人认为入门 CTF 之前大家应该先了解到底什么是 CTF,而你学 CTF 的目的又到底是什么;其次便是最好具备相应的编程能力,若是完全不具备这些能力极有可能直接被劝退。毕竟比赛的时候动不动写个脚本,搞个审计的。
对于 CTF 入门现在环境比 1516 年我刚接触时好太多了,当年各类资源少的可怜,SQL 注入绕 WAF 已经算是难题了。而目前国内的氛围明显好太多了,涌现出了大量优秀的平台。作为初学者往往会遇到一个很关键的问题:该学哪个方向。
个人感觉,在不知道学啥的事情可以先学学 Misc 培养兴趣,然后在不断的做题中思考自己感兴趣的方向。其次日后发展也是个很关键的事情,如果准备毕业后重试网络安全,那么就需要想好 Web、Pwn 这些方向的日后发展。可以干哪些岗位,而这些岗位需要的对应能力、发展空间、薪资等等。
二、CTF 竞赛模式
- 解题模式(Jeopardy)
- 攻防模式(Attack-Defense)
- 混合模式(Mix)
三、CTF 各大题型简介
MISC(安全杂项):全称 Miscellaneous。题目涉及流量分析、电子取证、人肉搜索、数据分析、大数据统计等等,覆盖面比较广。我们平时看到的社工类题目;给你一个流量包让你分析的题目;取证分析题目,都属于这类题目。主要考查参赛选手的各种基础综合知识,考察范围比较广。
PPC(编程类):全称 Professionally Program Coder。题目涉及到程序编写、编程算法实现。算法的逆向编写,批量处理等,有时候用编程去处理问题,会方便的多。当然 PPC 相比 ACM 来说,还是较为容易的。至于编程语言嘛,推荐使用 Python 来尝试。这部分主要考察选手的快速编程能力。
CRYPTO(密码学):全称 Cryptography。题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。实验吧'角斗场'中,这样的题目汇集的最多。这部分主要考查参赛选手密码学相关知识点。
REVERSE(逆向):全称 reverse。题目涉及到软件逆向、破解技术等,要求有较强的反汇编、反编译扎实功底。需要掌握汇编,堆栈、寄存器方面的知识。有好的逻辑思维能力。主要考查参赛选手的逆向分析能力。此类题目也是线下比赛的考察重点。
STEGA(隐写):全称 Steganography。隐写术是我开始接触 CTF 觉得比较神奇的一类,知道这个东西的时候感觉好神奇啊,黑客们真是聪明。题目的 Flag 会隐藏到图片、音频、视频等各类数据载体中供参赛选手获取。载体就是图片、音频、视频等,可能是修改了这些载体来隐藏 flag,也可能将 flag 隐藏在这些载体的二进制空白位置。有时候需要你侦探精神足够的强,才能发现。此类题目主要考查参赛选手的对各种隐写工具、隐写算法的熟悉程度。实验吧'角斗场'的隐写题目在我看来是比较全的,以上说到的都有涵盖。新手盆友们可以去了解下。
PWN(溢出):PWN 在黑客俚语中代表着攻破,取得权限,在 CTF 比赛中它代表着溢出类的题目,其中常见类型溢出漏洞有栈溢出、堆溢出。在 CTF 比赛中,线上比赛会有,但是比例不会太重,进入线下比赛,逆向和溢出则是战队实力的关键。主要考察参数选手漏洞挖掘和利用能力。
WEB(web 类):WEB 应用在今天越来越广泛,也是 CTF 夺旗竞赛中的主要题型,题目涉及到常见的 Web 漏洞,诸如注入、XSS、文件包含、代码审计、上传等漏洞。这些题目都不是简单的注入、上传题目,至少会有一层的安全过滤,需要选手想办法绕过。且 Web 题目是国内比较多也是大家比较喜欢的题目。因为大多数人开始安全都是从 web 日站开始的。
四、漏洞靶场
-
DVWA(必练):Web 安全入门必刷的靶场,包含了最常见的 web 漏洞,界面简单易用,通过设置不同的难度,可更好地理解漏洞的原理及对应的代码防护 http://www.dvwa.co.uk
-
Sqli-Labs(必练):一个印度大神程序员写的,用来学习 sql 注入的一个游戏教程,目前 65 关,冲关过程中学注入。 https://github.com/Audi-1/sqli-labs


