CTF meaning
CTF: 全称Capture The Flag, 就是夺旗比赛,衍生自古代军事战争模式,两队人马前往对方基地夺旗,每队人马须在保护好己方旗帜的情况下将对方旗帜带回基地。在计算机安全领域,CTF是一种计算机安全竞赛。
CTF通常有两种形式,解题模式(Jeopardy)和攻防模式(Attack-Defense), 在解题模式的比赛中,主办方会提供一系列不同类型的赛题,比如上线一个有漏洞的服务、提供一段网络流量、给出一个加密后的数据或经过隐写后的文件等,他们将 flag 隐藏在这些赛题中,选手们通过比拼解题来一决高下;在攻防模式比赛中,主办方会事先编写一系列有漏洞的服务,并将它们安装在每个参赛队伍都相同的环境中,参赛队伍一方面需要修补自己服务的漏洞,同时也需要去攻击对手们的服务、拿到对手环境中的 flag 来得分,攻防模式的竞赛往往比解题模式的竞赛更接近真实环境,比赛过程也更加激烈。 一般资格赛采用解题模式,决赛采用攻防模式。
CTF content
CTF包含题目较广,有
- 逆向工程
- 密码学
- ACM编程
- web漏洞
- 二进制练习
- 网络和取证
- 隐写术
- 无线安全
等等。需要深入研究某几个方向,涉及其他方向的知识。
CTF matchs
国际赛比较有名的比赛:
DEFCON CTF
HITCON CTF
国内较有名气的信息安全比赛有:
ISCC ctf
2011年上海市信息安全技能竞赛
全国大学生信息安全竞赛
四川省大学生信息安全技术大赛
全国大学生网络安全实战竞赛
江西高校信息安全知识及软件设计大赛
绿盟科技杯-信息安全对抗技术竞赛
XCon安全焦点信息安全技术峰会
以及目前各网络公司组办的ctf比赛,如alictf, bctf, 360信息安全技术大赛
CTF starting
各个方向学习参考(ctrl+c+v):
- 逆向工程。我强烈建议你得到一个IDA Pro的副本,这有免费版和学生认证书。尝试下crack me的问题。写出你的C语言代码,然后进行反编译。重复这个过程,同时更改编译器的选项和程序逻辑。在编译的二进制文件中“if”声明和“select”语句有什么不同?我建议你专注于一个单一的原始架构:x86、x86_64或是ARM。在处理器手册中查找你要找的,参考有:
《Practical Reverse Engineering》
《Reversing: Secrets of Reverse Engineering》
《The IDA Pro Book》 - 加密。虽然这不是我自己的强项,但这里有一些参考还是要看看的:
《Applied Cryptography》
《Practical Cryptography》
Cryptography I - ACM编程。选择一个高层次的语言,我推荐使用Python或Ruby。对于Python而言,阅读下《Dive into Python》和找一些你要加入的项目。值得一提的是Metasploit是用Ruby编写的。关于算法和数据结构的计算机科学课也要在此类中要走很长的路。看看来自CTF和其他编程的挑战,战胜他们。专注于创建一个解决方法而不是最快或是最好的方法,特别是在你刚刚开始的时候。
- web漏洞。有很多的网络编程技术,在CTF中最流行的就是PHP和SQL。php.net网站(译者注:需翻墙)是一个梦幻的语言参考,只要搜索你好奇的功能。PHP之后,看到网页上存在的挑战的最常见的方法就是使用Python或Ruby脚本。主要到技术有重叠,这有一本关于网络安全漏洞的好书,是《黑客攻防技术宝典:Web实战篇》。除此之外,在学习了一些基本技术之后,你可能也想通过比较流行的免费软件工具来取得一些经验。这些在CTF竞争中也可能会偶尔用到,这些加密会和你凭经验得到的加密重叠。
- 二进制练习。这是我个人的爱好,我建议你在进入二进制练习前要完成逆向工程的学习。这有几个你可以独立学习的常见类型漏洞:栈溢出,堆溢出,对于初学者的格式字符串漏洞。很多是通过练习思维来辨别漏洞的类型。学习以往的漏洞是进入二进制门槛的最好途径。推荐你可以阅读:
《黑客:漏洞发掘的艺术》
《黑客攻防技术宝典:系统实战篇》
《The Art of Software Security Assessment》 - 取证/网络。大多数的CTF团队往往有“一个”负责取证的人。我不是那种人,但是我建议你学习如何使用010 hex editor,不要怕做出荒谬、疯狂、随机的猜测这些问题运行的结果是怎样。
最后,Dan Guido和公司最近推出了CTF领域指南,会对以上几个主题的介绍有很好的帮助。 - 其他
Smash the Stack(漏洞利用)
Crackmes.de(逆向工程)
Netforce.nl(web渗透与密码学)
另外,BCTF赛题会与国际CTF比赛接轨,因此可以报名参加国际CTF比赛(详情参考ctftime)进行练手,也可以随时练习往届CTF赛题(赛题集合)。
CTF stars
国内ctf赛棍:
- HITCON
被称为”新台湾之光”, 2014年DEFCON 22 CTF中,取得世界第二的成绩。 - Blue-Lotus
蓝莲花(blue-lotus)战队成立于清华大学网络与信息安全实验室,主要从事计算机安全攻防方面的研究。 多数主要成员为清华大学在读研究生,后吸纳包括来自浙江大学、上海交大、青岛理工、中国海洋大学、杭州电子科大等高校的多名学生, 以及若干绿盟、阿里巴巴等公司的年轻安全技术人员。在业余时间,团队组队参加多项国际知名CTF赛事, 曾作为中国的团队首次闯入全球顶级的DEFCON CTF总决赛。这里可以看到blue-lotus在各项国际CTF赛事中取得的所有成绩。 - 其他