该团体似乎对初学者非常友好并且向所有人开放,但我仍然担心我在安全领域没有足够的知识可以参加。因此,我想为此做些准备,确切地了解这是什么,以及我可以做些什么来提高到基本水平。互联网研究使我对CTF是什么非常模糊。
我已经掌握的是某些编程语言的基础知识和中级知识,包括C#,PHP / Javascript / etc(基本),C(非常基础),Java。我不知道这是否有用,但我认为这不会有伤害。我自己的?
#1 楼
CTF(Capture The Flag)就像游戏中的课程。一些网站提供了一些简单的方法来学习绳索,但挑战却越来越简单。例如,http://overthewire.org/wargames/将教您如何在每次挑战中使用工具(十六进制转储,vi,甚至终端本身)。通常的主要目的是找到一些嵌入在文件(stegano)中,隐藏在服务器内部文件中的代码,您需要在其中滥用一个已知漏洞(常规CTF),甚至利用程序的源代码查找秘密密码(反向)。 />
就像任何编程挑战一样,花点时间,学习工具,不要害怕寻求帮助或撰写文章(显然不在您尝试获得的CTF上),但是它们可以提供
一些链接:
https://www.hackthebox.eu/:如上所述,各种类别的CTF ,范围从简单到繁琐,大量的书面记录
http://overthewire.org/wargames/:大多数是包含隐藏在服务器中的文件的常规CTF,以及查找/解密该文件的特定规则。对初学者有好处,将教您基本工具
评论
Vulnhub还有很多CTF挑战以及boot2root和其他挑战。其中大多数附带演练,这是学习是否被卡住的好方法。 vulnhub.com
– razethestray
18-09-5在11:29
#2 楼
说“ CTF”有点像说“视频游戏”。您如何准备视频游戏?好吧,这取决于游戏是什么!俄罗斯方块与天际非常不同,天际与马里奥赛车也不同。在不了解很多详细信息的情况下,您几乎无法做准备。在一个CTF中,我需要了解网络,TCP / IP,Web应用程序设计,加密和内存取证。在不知道是否需要的情况下,无法为所有这些做准备。
所有CTF的共同点是通常存在很多逻辑难题。
准备CTF的最好方法是进行CTF。 CTF的最大乐趣是不知道您需要知道什么,而是快速学习您需要了解的内容。
评论
这并不能解释CTF实际上是什么。它说CTF就像一个视频游戏,但从不解释它是什么。
– Clonkex
'18 Sep 6'在0:23
@Clonkex OP从技术上似乎知道什么是CTF。我正在回答“我该如何准备”部分。
– schroeder♦
'18 Sep 6'在6:26
鉴于OP的问题包括“什么是CTF”,回答这一部分似乎也很重要。
– code_dredd
18-09-6在16:58
#3 楼
什么是CTF?这是计算机安全竞赛的一种,称为CTF,因为您捕获了一个“标志”(一个唯一的字符串),并将其提交给计分基础设施。 CTF几乎总是有时间限制的,通常为24-48小时(通常在一个周末连续进行,这使世界各地的竞争者都能不受时区限制)。 CTF主要有两种-危险和攻击/防御。危险风格的CTF易于组织,也更容易发挥,对新玩家的惩罚也更少。在危险的CTF中,组织者编写了一系列挑战(在云上运行的易受攻击的二进制或Web服务,crackme类型的反向挑战,磁盘图像或数据包捕获中隐藏的内容或加密消息),为每个挑战分配点值挑战,并将其提供给竞争对手(通常是处于危险状态的董事会,其挑战按难度和类别进行组织(二进制利用,逆向工程,Web利用,密码学和取证是典型类别))。比赛开始时,参赛者可以访问挑战网格,您可以解决挑战并提交分数标志,最后,凡是拥有最多分数的人都将获得胜利(通常按时间打破关系以达到总积分)-越快越好) 。在攻击/防御CTF中,组织者仍会构建一组易受攻击的服务,但每个团队都必须运行这些服务的副本,以备其捍卫。您入侵其他团队以窃取他们的旗帜,并尝试修补您自己的服务,以防止其他团队对您这样做。 A / D CTF为组织者(VPN,每小组目标主机等)增加了很多额外的物流和基础设施工作。如果您受到踩踏(或者有人在您的基础架构上有持久性),对于新手来说,他们也可能会非常沮丧。但是,它们也可能很有趣,并且它们具有一些不寻常的技能,例如二进制修补和利用反射。
在准备方面:学习,练习和工具。弗洛伦特·乌格特(Florent Uguet)对战争游戏的建议很适合实践。您可能会发现有用的其他一些资源包括:
《 Bits追踪》的CTF现场指南提供了一些讲座,工具列表以及旧的CTF问题的演练。
picoCTF是针对背景知识很少的高中生的CTF。比赛结束了,但是组织者把问题留给人们学习。这是一个很好的起点,如果您具有编程经验,那么您将处于领先地位,并且应该能够很快地了解早期内容。我想10月还会有一个新的picoCTF。
pwnable.kr有许多很好的二进制开发挑战需要实践。
您经常可以找到过去CTF编写的挑战文章在线,这是熟悉ctfy习语或特定ctf中可能出现的各种问题的好方法。 ctftime.org除了托管即将发布的ctfs日历外,还汇总了撰写内容。
在工具方面,我将提供的一项建议是增强脚本语言。 CTF通常处于时间压力之下,速度比完美的正确性更为重要。 Python似乎是最常用的语言,并且在python中有很多很好的工具可以应对ctf类型的挑战(例如pwntools)。有点熟悉也可能会很好。
#4 楼
CTF基本上是游戏中众所周知的东西。它是“夺旗”,但要实现盗旗目标,您必须实现多个目标,而不是盗旗。例如比赛中的旗帜可以是反向工程密钥验证,以开发密钥生成器
由于您了解一些编程语言及其基本原理,因此如果您加强逻辑理解和调查技能,这将是很有帮助的。做一些。如果您偶然发现问题,请研究主题并了解其机理。
像Schroeder所说。准备非常困难,因为您很可能不知道将要执行的任务。
作为个人提示:
放松。您可以和他们一起学习,并且乐在探索系统缺陷。
尝试玩得开心。
#5 楼
我注意到,大多数答案似乎都避免了您的“如何准备CTF”的问题,因此我会插话。首先,您将需要组织者提供的所有CTF,尤其是那些具有相同的标题。例如,在上周末举行的最近的TokyoWesterns CTF 2019(CodeBlue Qualifiers)中,有一个问题“ Slack Emoji Converter Kai”引用了去年(2018年)以前的CTF中的另一个CTF问题“ Slack Emoji Converter”。它需要使用Ghostscript进行类似的利用,并且如果您没有经验,那么只是阅读/学习该利用会花费不必要的时间。
其次,您需要在组织者上执行OSINT。您想知道谁是成员,以及他们最近发布/发现的内容。
为什么要这样做?
就像前面的示例一样,CTF问题作者从周围的漏洞利用中得到了启发。如果他们没有引用旧的漏洞利用程序,则可能是新漏洞利用程序。 CNote中的PHPNote问题要求利用6月联合发布的两个成员的漏洞。意识到这一点的团队只花了几个小时就可以进行工作,而那些没有准备的团队则花费了超过12个小时来解决。阅读有关他们最近获得的CVE和最新出版物的信息。
最后,您将要阅读过去1-2年(对于高级CTF)或仅是常见的/流行的漏洞利用程序(适用于初学者的CTF)。
请注意,这仅适用于普通CTF。我仍然不知道为DEFCON决赛做准备的可靠方法。
评论
仅在CTF专注于漏洞利用时,才了解漏洞利用。这就是为什么大多数其他答案都避免谈论如何准备的原因。 “ CTF”是完全未定义的。
– schroeder♦
19年9月2日在6:37
评论
顺便说一句:这个站点拥有自己的CTF团队,我们(定期(定期)参加CTF)。加入我们的DMZ,结识团队中可爱的人!@TomK .:您可能希望将该信息包含在CTF标签Wiki中。