图片来自网络
CTF全称“Capture the FLAG”,俗称夺旗(flag)比赛,起源于1996年举办的DEFCON全球黑客大会,随着安全攻防技术的发展,CTF是网络安全技术人员之间进行的技术竞技,线上题目类型有二进制安全、Web安全、IOT安全、密码学和杂项等方向,线下有AWD攻防赛等多种赛制模式
题目类型
一
WEB安全
Web安全的所有核心基础点,有挑战性,最常规,最全,,门槛低。目前国内大多数CTF比赛都以Web安全为主,偏重对技巧沉淀、快速搜索能力的挑战,发散思维,对底层只需要了解。能够理解Web脚本语言、能够对漏洞点的积累将具巨大优势。
二
密码学
偏重对数学、算法的深入学习,需要了解主流的密码算法,如对称密码、公钥密码、流密码、哈希密码算法等
三
PWN
程序的逻辑分析,漏洞利用windows、linux、小型机等
四
MISC
杂项,隐写,数据还原,脑洞、社会工程、与信息安全相关的大数据,所有与计算机安全挑战有关的都在其中隐写,图片、音频、视频数据解密分析还原,流量、大数据分析
五
逆向
逆向windows、linux类
六
编程
需要运用自己熟练的一门编程语言写脚本实现批量化运用并解题
学习方向分类
一
A方向
PWN+Reverse+Crypto随机搭配,主要涉及内容为:IDA工具使用(fs插件)、逆向工程、密码学、缓冲区溢出等
二
B方向
Web+Misc组合,主要涉及内容为:Web安全、网络安全、内网渗透、数据库安全、前十的安全漏洞等
入门条件
1
能够熟练使用计算机(现代社会说了白说)
2
足够的热情、好奇心(CTF说白就是一种黑客游戏形式、能有打游戏热情最好)
3
脑洞大开(天马行空的想象、推理解密、如黑客game)
4
体力耐力(有通宵熬夜上网的经历最好)
5
坚持学习的动力和总结笔记的能力
6
了解CTF题目类型和自己喜欢或擅长的方向
如何入门学
1
补基础知识,可以以信息安全专业课程为参考(如:linux基础、计算机组成原理、操作系统原理、网络协议分析、编程语言基础、算法基础等)
2
从基础题突破 一般都是web安全、杂项、密码学等题目分值较低、上手较快
3
选择一场已经存在writeup[1]的比赛并参加,以练促赛,了解整个流程
4
勤于总结和作笔记,尤其针对多次做过的题目类型,总结技巧可以四两拨千斤
5
将知识体系系统化,有计划的学习针对性知识点、多看相关网站、技术文档、教程、笔记(这里就是一个分享学习路线、技巧的地方?)
推荐书籍
一
A方向
二
B方向
练习平台
工具包下载
https://github.com/truongkma/ctf-tools https://github.com/Plkachu/v0lt https://github.com/zardus/ctf-tools https://github.com/TUCTF/Tools
比赛地址
https://ctftime.org/ 国际比赛,有很多基础的
http://www.xctf.org.cn/ 国内比赛,比较难
最后最后
很多人会问,这文章资源全吗?那当然不全,但句句都是前辈们总结的精华和干货,又会差到哪里去呢?这么长的文章能会看到这个位置并收藏,你已经离CTF近了一大步,剩下的就靠时间去证明了吧!
[1]
writeup: 是指总结有解题思路和步骤的文档
[2]
《黑客攻防技术宝典(Web实战篇第2版)》: 从介绍当前Web应用程序安全概况开始,重点讨论渗透测试时使用的详细步骤和技巧,每章总结并附有习题