CTF全称“Capture the FLAG”,也称夺旗(flag)比赛,起源于1996年举办的DEFCON全球黑客大会,随着安全攻防技术的发展,CTF是网络安全技术人员之间进行的技术竞技,线上题目类型有二进制安全、Web安全、IOT安全、密码学和杂项等方向,线下有awd攻防赛等多种赛制模式


题目类型分析

  • Web安全 Web安全的所有核心基础点,有挑战性,最常规,最全,学好会直线上升,目前国内大多数CTF比赛都以Web安全为主,偏重对技巧沉淀、快速搜索能力的挑战,发散思维,对底层只需要了解,门槛低。能够理解Web脚本语言、能够对漏洞点的积累将具巨大优势。
  • 密码学 偏重对数学、算法的深入学习,需要了解主流的密码算法,如对称密码、公钥密码、流密码、哈希密码算法等
  • Pwn 程序的逻辑分析,漏洞利用windows、linux、小型机等
  • Misc 杂项,隐写,数据还原,脑洞、社会工程、与信息安全相关的大数据,所有与计算机安全挑战有关的都在其中隐写,图片、音频、视频数据解密分析还原,流量、大数据分析
  • 逆向 逆向windows、linux类
  • 编程 需要运用自己熟练的一门编程语言写脚本实现批量化运用并解题

学习方向分类

  1. A方向:PWN+Reverse+Crypto随机搭配,主要涉及内容为:IDA工具使用(fs插件)、逆向工程、密码学、缓冲区溢出等
  2. B方向:Web+Misc组合,主要涉及内容为:Web安全、网络安全、内网渗透、数据库安全等 前10的安全漏洞

入门因素

  1. 能够熟练使用计算机(现代社会说了白说)
  2. 足够的热情、好奇心(CTF说白就是一种黑客游戏形式、能有打游戏热情最好)
  3. 脑洞大开(天马行空的想象、推理解密、如黑客game)
  4. 体力耐力(有通宵熬夜上网的经历最好)
  5. 坚持学习的动力和总结笔记的能力
  6. 能了解CTF题目类型和自己喜欢或擅长的方向

如何入门学

  1. 补基础知识,可以以信息安全专业课程为参考(如:linux基础、计算机组成原理、操作系统原理、网络协议分析、编程语言基础、算法基础等)
  2. 从基础题突破 一般都是web安全、杂项、密码学等题目分值较低、上手较快
  3. 选择一场已经存在writeup的比赛并参加,以练促赛
  4. 勤于总结和作笔记,尤其针对多次做过的题目类型,总结技巧可以四两拨千斤
  5. 将知识体系系统化,有计划的学习针对性知识点、多看相关网站、技术文档、教程、笔记(这里就是一个分享学习路线、技巧的地方😀)

推荐书籍

A方向:

  • 《RE for Beginners》
  • 《IDA Pro权威指南》
  • 《揭秘家庭路由器0day漏洞挖掘技术》
  • 《自己动手写操作系统》
  • 《黑客攻防技术宝典》

B方向:

  • 《Web应用安全权威指南》
  • 《Web前端黑客技术揭秘》
  • 《黑客秘籍——渗透测试实用指南》
  • 《黑客攻防技术宝典 web实战篇》》”)
  • 《代码审计:企业级web代码安全架构》

推荐练习平台:

  • idf实验室:题目非常基础,每题只有一个知识点
  • i春秋:国内,有线下决赛题目复现
  • we Chall:非常入门的国外ctf题库,很多国内都是从这里刷题成长起来的,有各种类型赛题挑战
  • pwn类游乐场:不到100题
  • xss挑战:B方向 国外的xss测试
  • sql注入挑战:B方向 国外sql注入挑战网站,10关,过关的形式 不同的注入,循序渐近地练习
  • Bugku:国内 基础为主

工具箱下载地址:

https://github.com/truongkma/ctf-tools
https://github.com/Plkachu/v0lt
https://github.com/zardus/ctf-tools
https://github.com/TUCTF/Tools

CTF比赛地址推荐

https://ctftime.org/ 国际比赛,有很多基础的
http://www.xctf.org.cn/ 国内比赛,比较难

最后的最后

很多人会问,这文章资源全吗?那当然不全。但句句都是前辈们总结的精华和干货,又会差到哪里去呢?这么长的文章能会看到这个位置并收藏的,你已经离CTF近了一大步,剩下的就靠时间去证明了吧!