我在上学时接触了我的一位老朋友,那是一位了不起的程序员,他邀请我与他的大学团体一起参加CTF活动之一。

该团体似乎对初学者非常友好并且向所有人开放,但我仍然担心我在安全领域没有足够的知识可以参加。因此,我想为此做些准备,确切地了解这是什么,以及我可以做些什么来提高到基本水平。互联网研究使我对CTF是什么非常模糊。

我已经掌握的是某些编程语言的基础知识和中级知识,包括C#,PHP / Javascript / etc(基本),C(非常基础),Java。我不知道这是否有用,但我认为这不会有伤害。我自己的?

评论

顺便说一句:这个站点拥有自己的CTF团队,我们(定期(定期)参加CTF)。加入我们的DMZ,结识团队中可爱的人!

@TomK .:您可能希望将该信息包含在CTF标签Wiki中。

#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