什么是CTF?
CTF(Capture The Flag,中文一般译作“夺旗赛”)在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,用以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。如今,它已经成为全球范围网络安全圈流行的竞赛形式。
CTF的比赛模式主要包括解题模式(Jeopardy)、攻防模式(Attack-Defense)和混合模式(Mix)。在解题模式中,参赛队伍需要解决网络安全技术挑战题目,并以分值和时间排名。题目类型包括PWN(攻破、取得权限)、Stega(隐写术)、Crypto(密码学)、Web(网络)等。攻防模式中,参赛队伍需要在保护自己的同时攻击对手,获取对方的旗帜。混合模式则是解题模式和攻防模式的结合。
CTF比赛的知识范围大致分为:Web安全、PWN(二进制安全)、逆向工程、Misc(杂项)、Crypto(密码学安全)、网络安全。部分比赛还会有其他分类,如移动安全等。
CTF的发展历程
早期的CTF比赛
早期的比赛情况
1、没有明确的比赛规则
2、苛刻的比赛条件
- 靶机由参赛者自己携带,并且自己做好靶机的防守工作;
- 攻击对方带来的目标靶机
- 攻陷对方的目标靶机得分,失守自己带的靶机扣分
3、有失公平的比赛计分
- 非专业的组织者充当裁判;
- 无后台自动计分的系统支持;
- 手工计分:接受参赛队伍的请求进行计分
早期的比赛容易导致的结果
1、赛场上相当混乱
- 裁判的不专业的判定导致选手的争论与不满;
- 比赛计分的延迟和误差导致的不满;
- 比赛中网络的不稳定和靶机的配置问题导致的不满。
2、比赛的输出形式差
- 当时的比赛没有现在的大屏幕显示,观众只能看到选手和电脑,看不到选手的得分和失分情况,没有比赛中紧张刺激的气氛,导致观众的观赏性很差。
CTF由早期向现代过渡
2002年是CTF从早期向现代过渡的一个阶段。
- 由专业的队伍来申请DEFCON CTF的主办权,而这个专业的比赛队伍正是1999-2001年的三连冠战队ghettohackers。
- 有专业的队伍搭建比赛平台,自己命题以及组织赛事
- CTF设计定制服务,并以攻击别队服务,修补和保护自己服务作为竞赛主线。
CTF比赛模式的演化
攻防模式(Attack and Defense)——>解题模式——>混合模式(Mix)
CTF赛事介绍
国别 | 赛事内容 |
国内 |
|
国外 |
|
获取CTF赛事信息
国外:ctftime.org 是对一个在国际上比较重要的赛事的做一些记录,而且会还会给出赛事的一些权重,以及对这种CTF 知名战队的一些排名
国内:XCTF社区,主要是国内的赛事或者相关公告,可以发现很多CTF赛事。网址:https://adworld.xctf.org.cn/contest/list
如何参加CTF赛事
- 找比赛信息,掌握各种CTF比赛时间。
- 提交报名信息
- 等待通知邮件
- 确认是否参赛
CTF之解题模式
CTF解题模式(Jeopardy)是CTF比赛的一种模式,参赛队伍可以通过互联网或者现场网络参与。在这种模式中,参赛队伍需要解决网络安全技术挑战题目,并以分值和时间排名。题目类型主要包括逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等。参赛队伍需要在规定时间内尽可能多地解决题目,获取更高的分数。这种模式类似于ACM编程竞赛和信息学奥赛,主要考察参赛者的技术实力和解题能力。
比赛规则
- 参赛队伍需要通过解决一系列的题目来获得分值,并以分值和完成时间来排名。题目通常由组织者设计,涉及各种网络安全技术和攻防策略。
- 参赛队伍需要通过分析、解密、漏洞利用、逆向工程等手段来解决这些题目,并找到隐藏的“旗帜”(flags)。这些“旗帜”通常是一段特定的字符串,可以是一个加密密钥、一个隐藏的文件、一个系统漏洞的利用等。
- 参赛队伍需要通过解决各种类型的题目来获取这些旗帜,并提交给组织者验证。每个旗帜的分值根据题目的难度而定,通常越难的题目分值越高。
eg:
- 参赛队伍:每个参赛队伍通常由3-5名成员组成。队员之间可以协作解决问题,并共享所获得的情报和解题思路。
- 比赛时间:CTF比赛通常持续数小时至数天不等,具体时间由主办方确定。
- 裁判团队:每场CTF比赛都会有一个裁判团队负责维护比赛秩序、处理纠纷和评分等工作。
- 题目类型:CTF比赛包含多种类型的题目,如密码学、逆向工程、网络安全、Web安全等。每个题目都有一个旗帜,参赛者需要通过解决问题找到旗帜并提交给裁判团队。
- 解题模式:通常为在线比赛,目前大多数CTF比赛的主流形式,选手自由组队参赛(在线比赛人数一般不做限制)。题目通常在比赛过程里陆续放出。接触一道题目后,提交题目对应的flag即可得分,比赛结束后分高者胜。
- 禁止行为:禁止任何形式的作弊和违规行为,包括但不限于使用未经允许的工具、利用漏洞、攻击其他队伍等。如果发现违规行为,将取消相关队伍的参赛资格。
- 裁决:对于比赛过程中出现的争议和纠纷,由裁判团队进行裁决。裁判团队的裁决是最终的,参赛队伍需要接受并遵守。
- 其他事项:具体的比赛规则和要求可能会根据比赛的不同而有所不同,参赛队伍需要提前了解并遵守相关规定。
解题模式的CTF竞赛要求
参赛队伍具备广泛的网络安全知识和技能。参赛队员需要熟悉逆向工程技术,能够分析和破解程序代码;需要了解漏洞挖掘与利用的方法,能够发现系统中的安全漏洞并利用它们;需要掌握Web渗透测试技术,能够发现和利用Web应用程序的漏洞;需要了解密码学的基本原理和算法,能够解密和加密数据;需要了解取证和隐写术的基本概念和方法,能够发现隐藏的信息;需要具备安全编程的能力,能够编写安全的代码等等。
题目类型
- Web安全
- SQL注入
- XSS
- 文件包含
- 命令执行
- 文件上传
- ...
- 逆向工程
- 反编译
- 反汇编
- ...
- 漏洞挖掘与漏洞利用
- 二进制程序分析
- 漏洞挖掘技术
- 漏洞利用技术
- ...
- 密码学
- 密码算法
- 密码协议
- 加密解密技术
- ...
- 调查取证
- 数据隐藏技术
- 数据恢复技术
- 取证技术
- ...
- 移动安全
- Android
- iOS
如何练习
攻防世界: https://adworld.xctf.org.cn
Bugku:http://ctf.bugku.com
Jarvis OJ: https://www,jarvisoj.com
CTFlearn:https://ctflearn.com/challenge/1/browse
BUUCTF:https://buuoj.cn
CG CTF: https://cgctf.nuptsast.com
CTF之攻防模式
CTF攻防模式(Attack-Defense)是CTF比赛的一种模式,参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。在这种模式中,参赛队伍需要同时扮演攻击者和防守者的角色,攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负。攻防模式是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。参赛队伍需要具备良好的团队分工配合与合作能力。
比赛形式
- 比赛开始前会给每支队伍分配SSH 账号,比赛开始用该账号登录服务器进行维护(多为 Linux 服务)。
- 在服务器的某处有一个 flag 文件,一般在根目录下,默认没有权限修改
- 主办方每隔一定,进行一轮刷新。一轮内一支队伍的 flag 只能被提交一次,flag 一旦被拿走将扣除该队的分数。
- 主办方会对不定期对服务进行检查,一般的判断标准就是服务是否还存在。
注意事项
- 在竞赛进行期间,参赛人员不得携带手机等通讯工具以及上网设备进入竞赛场地内。
- 在竞赛进行期间,选手只能跟自己团队的成员进行交流,队伍与队伍之间不允许进行任何形式的交流。
- 在竞赛进行期间,如果有任何问题请举手示意工作人员,不准随意走动或大声喧哗;
- 禁止选手对竞赛平台进行任意行为的恶意测试,一经发现,立即取消竞赛资格。
- 禁止选手使用DDoS工具对现场的网络环境进行蓄意破坏,一经发现,立即取消竞赛资格。
人员分工
经典6人队伍
- 队长:队长是整个团队的领导者,负责组织协调、分工合作、决策制定等工作。队长需要具备全局观念和战略眼光,能够合理分配资源、协调各方行动,确保整个团队高效运转。
- 攻击手:攻击手负责对外发动攻击,获取其他队伍的信息和旗帜。攻击手需要具备扎实的网络安全知识和丰富的攻防经验,能够快速准确地发现目标漏洞并利用它们进行攻击。
- 防守手:防守手负责保护本队的信息和旗帜,防止其他队伍的攻击。防守手需要具备全面的安全知识和较强的应对能力,能够及时发现并修补漏洞、配置安全策略、监控网络流量等。
- 密码学专家:密码学专家负责解决与密码学相关的题目,例如加密解密、密码破解等。密码学专家需要具备深厚的密码学知识和经验,能够快速准确地解决密码学题目,为团队获取更多分值。
- 逆向工程专家:逆向工程专家负责解决与逆向工程相关的题目,例如反编译、反汇编、调试等。逆向工程专家需要具备扎实的逆向工程知识和经验,能够快速准确地解决逆向工程题目,为团队获取更多分值。
- 信息搜集与分析专家:信息搜集与分析专家负责搜集和分析比赛相关的信息和情报,例如目标队伍的情况、比赛进展等。信息搜集与分析专家需要具备较强的信息搜集和分析能力,能够为团队提供有价值的情报和支持。
常见3人队伍
- 队长:队长是整个团队的领导者,负责组织协调、分工合作、决策制定等工作。队长需要具备全局观念和战略眼光,能够合理分配资源、协调各方行动,确保整个团队高效运转。
- 攻防手:攻防手负责对外发动攻击并保护本队的信息和旗帜。攻防手需要具备扎实的网络安全知识和丰富的攻防经验,能够快速准确地发现目标漏洞并利用它们进行攻击,同时能够及时发现并修补漏洞、配置安全策略、监控网络流量等。
- 密码学与逆向工程专家:密码学与逆向工程专家负责解决与密码学和逆向工程相关的题目,例如加密解密、密码破解、反编译、反汇编、调试等。密码学与逆向工程专家需要具备深厚的密码学和逆向工程知识和经验,能够快速准确地解决相关题目,为团队获取更多分值。
如何练习攻防模式
线上: hack the box
Hack The Box: Hacking Training For The Best | Individuals & CompaniesWhere hackers level up! An online cybersecurity training platform allowing IT professionals to advance their ethical hacking skills and be part of a worldwide community. Join today and learn how to hack!https://www.hackthebox.eu
线下: vulnhub
Vulnerable By Design ~ VulnHubVulnHub provides materials allowing anyone to gain practical hands-on experience with digital security, computer applications and network administration tasks.https://www.vulnhub.com