CTF全称Capture The Flag翻译过来就是夺旗赛本质上是网络安全领域的一种竞赛形式。比赛里每道题会藏一个特定格式的字符串一般是flag{一串字符}你的任务就是利用各种技术手段把它从题目里挖出来提交到平台换分。这篇文章是给2025年零基础小白准备的CTF入门指南从比赛本身讲起把学习路线、靶场选择、工具包搭建、笔记方法这些环节全部串联在一起。我自己带过好几批新人入门也长期在各类平台刷题和打比赛踩过的坑和总结出的方法都会揉进这篇文章。想入CTF这个坑看这一篇用来起步是完全够的。1. 先搞清楚CTF在比什么赛制、题型与flag1.1 解题赛和攻防赛两种赛制两种玩法CTF常见的赛制有两种。第一种是解题模式Jeopardy也是绝大多数新手赛采用的赛制。平台会把题目按方向和难度摆出来每道题对应不同分值你解出一道就提交flag、拿对应的分。题目之间彼此独立可以挑自己擅长的方向先做节奏完全由自己掌握。第二种是攻防模式AWDAttack With Defense在解题模式的基础上增加了对抗性每个队伍分到一台配置相同的服务器上面有预设的漏洞你需要一边修补自己服务器上的漏洞防止被别人打穿一边利用漏洞去攻击对手的服务器拿它的flag。AWD非常刺激但门槛也高新手先不用碰等Web和Pwn有一定基础后再考虑。1.2 五大题型Web、Crypto、Misc、Reverse、PwnWeb考察Web应用里的安全漏洞比如SQL注入、XSS跨站脚本、CSRF、SSRF、文件上传、命令执行、反序列化等。特点是逻辑直观、回显清晰很多题有明确报错或者可控参数对新手极其友好是公认的入门第一站。Crypto密码学题目从古典密码凯撒、维吉尼亚、栅栏密码到现代密码RSA、AES、分组密码、流密码都有。现代密码方向对数学有一定要求尤其是数论基础但很多攻击套路是固定模板练熟了能稳定拿分。Misc杂项内容最杂最考验脑洞。常见的有编码转换Base64、Hex、URL编码、Brainfuck等、图片隐写改宽度、LSB隐写、附加数据、流量分析抓包文件里找异常流量、压缩包伪加密、二维码修复等。Misc讲究的是见多识广刷题量直接决定水平。Reverse逆向工程拿到一个可执行文件Windows的exe、Linux的elf、Android的apk都有通过静态分析和动态调试搞清楚程序逻辑写出脚本还原flag。常用工具是IDA、Ghidra、x64dbg需要会一点汇编和C语言。Pwn二进制漏洞利用利用栈溢出、格式化字符串、堆溢出等漏洞控制程序执行流程拿到远程服务器的shell或者读取flag。这是整个CTF里门槛最高的方向需要扎实的C语言、汇编、操作系统知识。1.3 flag到底是什么长什么样flag是一个格式固定的字符串最常见的是flag{...}的形式比如flag{hello_ctf_2025}。不同比赛格式可能有差异比如有些比赛用CTF{...}、flag{}甚至有队伍自己定制的格式。做题的第一步永远是把题目附件下载下来、把描述看清楚很多时候flag的格式和提示就藏在题目描述里。另外要养成提交前先核对flag完整性的习惯我曾经因为少复制末尾的}白丢一道题的分这种低级失误是最可惜的。给新人的建议入门前两周不需要追求全方向覆盖把Web和Misc作为主攻Crypto保持每天做一两题的频率Reverse和Pwn先了解题型长什么样就行。等建立了信心再决定要不要往深走。2. 零基础入门路线图按这个顺序学不迷路2.1 第一阶段前两周把地基打牢很多新人一上来就学Pwn被汇编和堆栈直接劝退这是入门最大的坑。正确的顺序是先补基础知识再进靶场练手。这个阶段只学四样东西HTTP协议基础至少要知道GET和POST的区别、常见的状态码200、302、403、404、500、请求头和响应头里常见的字段Cookie、User-Agent、Content-Type、Location。Web题里的很多漏洞都是围绕HTTP请求做文章不懂协议就看不懂题。编码基础ASCII、Hex、Base64、URL编码这四种必须烂熟于心。随便给你一串字符你要能认出来是哪一种编码知道怎么转回原文。这个能力在Misc和Crypto里天天用到。Python基础不用学多深会写脚本处理字符串、会读文件、会用requests库发HTTP请求、会用简单循环和正则表达式就够。CTF里大量操作要靠脚本自动化手算是不可能的。Linux基础会基本命令就够了ls、cd、cat、grep、find、chmod、tar、strings、file。前几个是日常操作文件用的后三个是做题神器strings能提取文件里的可见字符串file能识别文件真实类型。2.2 第二阶段第3周到第2个月主攻Web方向Web方向知识点多但结构清晰按漏洞类型逐个击破效率最高。推荐顺序是SQL注入 → XSS → CSRF → 文件上传 → 文件包含 → 命令执行 → SSRF → 反序列化。每种漏洞的学习方法是一样的先去网上找一篇原理文章看懂为什么会有这个漏洞再去对应靶场做通关练习最后在CTF真题里找同类型题目巩固。比如SQL注入先理解用户输入被拼接到SQL语句中导致查询逻辑被改变这个核心然后在SQLi-Labs靶场里从第1关做到第20关基本就掌握了报错注入和布尔盲注的套路。这个阶段最容易遇到的问题是想一口气把每种漏洞都弄透彻结果每样都浅尝辄止。正确的做法是每个漏洞类型至少要独立做通一个完整靶场让从发现注入点到绕过WAF的完整流程在脑子里形成肌肉记忆再去碰下一个漏洞类型。2.3 第三阶段第2到第4个月补上Crypto和MiscWeb练到中期可以开始穿插Crypto和Misc。Crypto的学习顺序建议是先花一周把古典密码全部过一遍凯撒、维吉尼亚、栅栏、培根、摩斯、猪圈密码这些知道特征和对应解法。然后进入现代密码重点掌握RSA的基础攻击面模数分解、低指数攻击小e、共模攻击、维纳攻击Wieners Attack。这几类在CTF里出现频率极高而且有成熟脚本模板属于背模板就能拿分的知识点。Misc则是靠刷题量堆出来的。每天两到三道题见一个学一个。今天遇到图片隐写里的LSB套路就学会用StegSolve或zsteg处理明天遇到流量分析里的USB键盘流量就去查协议格式然后写脚本还原按键。Misc的题库就像一本不断更新的字典刷得越多下次遇到类似题目时反应越快。2.4 第四阶段量力而行Reverse与Pwn等Web、Crypto、Misc都稳定能出分了再评估要不要碰Reverse和Pwn。Reverse入门先学两件事一是用Ghidra免费对小程序进行静态分析看懂main函数的伪代码二是用x64dbg或gdb做简单的动态调试在关键跳转处下断点、修改寄存器或内存值。从简单的crackme题做起这类题一般要求输入正确的序列号或者让程序输出正确的flag逻辑通常很简单适合练手。Pwn则从最经典的栈溢出入手学会用pwntools写exp控制程序返回地址执行后门函数。这个过程需要补汇编基础、函数调用栈布局、ROPReturn-Oriented Programming这些概念学习曲线陡峭但一旦打通一个栈溢出challenge成就感也特别强。3. 靶场选择新手村、练习场与实战战场3.1 本地靶场三件套DVWA、Pikachu、SQLi-Labs本地部署靶场是新人必须会的一件事。我推荐从这三个开始DVWADamn Vulnerable Web Application老牌Web漏洞靶场内置SQL注入、XSS、命令执行、文件上传等常见漏洞每个模块还分低、中、高三个安全级别适合循序渐进。部署方式很简单下载源码放到PHP环境里即可或者直接用Docker镜像一条命令跑起来。Pikachu一个中文界面的Web漏洞靶场特别适合英文还不太熟练的新人。它覆盖了XSS、SQL注入、CSRF、SSRF、RCE等十几个漏洞类型每个模块都有详细的漏洞原理说明做起来像看教程一样顺畅。SQLi-Labs专门练习SQL注入的靶场一共60多关从最基础的单引号报错到二次注入、堆叠注入、时间盲注都有覆盖。花两周时间把它刷完SQL注入水平会有质的飞跃。如果条件允许建议再装一个Upload-Labs练文件上传以及VulnHub上下载的虚拟机镜像练综合渗透。本地靶场的优势是环境完全可控随便折腾不怕把线上平台搞崩而且能锻炼自己搭建环境的能力。3.2 在线CTF练习平台推荐本地靶场练够了就要上在线CTF平台做真题。下面是几个我实际用下来觉得适合新人的平台BUUCTF聚合了大量历史赛事的真题涵盖各方向、各难度可以在线提交flag。新人可以直接按难度或方向筛选从最简单的题开始刷。这个平台最大的价值是题库量大你总能找到适合自己的题目。攻防世界国内老牌CTF平台有新手练习区、进阶区和真题区界面清晰适合按部就班地做。题目附带的writeup解题思路很多卡住了可以看。NSSCTF很多高校CTF社团在用题目质量和更新频率都不错有些题是平台原创的其他地方刷不到。CTFShow题库里有专门的萌新赛题难度平滑上升很适合作为学完基础后的第一个线上平台。国际平台方面TryHackMe和HackTheBox等平台也值得了解它们以引导式练习和实战攻防为主能帮助拓展经验。此外关注各大赛事的官网赛后一般会公开题目和官方解特别是国内高校赛事如XCTF联赛、各省强网杯等真题质量高且贴近国内考点。3.3 怎么安排日常练习节奏练习节奏给大家一个参考方案工作日每天保证1到2小时周末抽半天集中实战。具体分配是30分钟做2道Misc或Crypto的简单题1小时做Web题剩下时间写复盘笔记。如果当天实在忙至少也要保持看一道题、尝试一个思路的状态维持手感。每周抽一个晚上完整打一场线上周赛或月赛用来检验综合能力。这里必须强调一点做题时卡了30分钟还毫无头绪就大胆地去看writeup。看writeup不是作弊而是高效学习——但要先看清楚别人的思路和你自己的思路差在哪里然后把这道题完整重做一遍写进复盘笔记。只看不动手等于白看。4. 工具包搭建一台电脑至少能解七成题4.1 必备基础工具清单工欲善其事必先利其器。新人的工具包不需要一步到位把我下面列的先装齐就够用Chrome或Firefox浏览器必须熟练使用开发者工具F12会看Network面板里的请求报文、会修改请求和Cookie、会看Console里的报错。Web题有大量线索是靠抓包发现的。Burp Suite Community版Web方向的核心工具。它提供代理抓包、改包重放、爆破、解码等能力。免费版完全够入门用。配置好代理后浏览器的所有请求都会经过Burp你能看到前端提交了什么参数也能在请求里做各种篡改尝试。Python 3装好Python环境后用pip装几个高频库requests发HTTP请求、pycryptodome密码学计算、PIL图片处理、numpy、pwntoolsPwn方向。不知道某个功能怎么实现时搜Python相关库比手写省太多时间。HxD或010 Editor十六进制编辑器用来查看文件的二进制内容。图片隐写、文件格式分析、压缩包修复这类Misc题几乎离不开它。4.2 编码与隐写工具这一块单独说因为Misc和Crypto方向是编码工具的重度用户。随波逐流CTF编码工具一个被国内CTF圈广泛使用的编码解码集成工具聚合了Base64系列、Hex、URL、栅栏、凯撒、摩斯、Brainfuck、RSA等几十种编解码和加解密功能界面直观操作便捷。做Misc题时先扔进去试一圈很多时候一上午就能出结果。CyberChef在线工具也能本地部署支持通过拖拽组件实现输入 → 各种解码操作 → 输出的流水线处理。它的最大优势是可以把多个解码步骤串起来比如Base64解码后是HexHex解码后是URL编码再解码才是flag用CyberChef拖几个组件就能一键跑完。StegSolve图片隐写分析工具可以对图片做颜色通道分离、LSB逐位查看、帧分析等操作。遇到图片题先用StegSolve过一遍是标准流程。binwalkLinux下的命令行工具用于分析文件里是否藏了其他文件或者附加数据。跑一下binwalk flag.png有时候会直接提示里面还嵌着zip或另一个图片。4.3 Kali Linux到底要不要装结论要装但前期不一定天天用。Kali Linux是一个集成大量安全工具的Linux发行版CTF常用的工具有很多它预装了比如Burp Suite、nmap、sqlmap、john、wireshark等。建议用虚拟机安装VirtualBox或VMware都行不要直接装成物理机系统。装好后先熟悉Kali里常见的命令nmap做端口扫描、sqlmap测SQL注入、strings提取字符串、binwalk分离文件、john跑密码爆破。很多命令是有现成Man手册的先用起来用到什么学什么。有一点注意Kali里的工具是为了在授权环境下测试用的CTF比赛和靶场属于训练环境使用这些工具没有问题。但不要在未经授权的真实系统上随意使用这个边界心里要有数这也是CTF玩家最基本的职业素养。4.4 常用工具组合的实战用法分享两个我在做题时常用的工具组合场景。场景一拿到一个不知道是什么的附件。先file attachment看文件类型再strings attachment | grep -i flag找可见字符串然后用binwalk attachment看有没有嵌入文件。如果都没有就扔进010 Editor看十六进制内容或者用HxD查文件头魔数。这一套下来八成Misc题能确定下一步方向。场景二拿到一个需要提交参数才能返回结果的Web题目。先开Burp抓包看请求结构和参数名再用Python的requests库写脚本批量尝试不同的参数值或绕过逻辑配合Burp的Repeater手动验证几个可疑的点。脚本能帮我快速枚举大量可能Burp则帮我精准定位漏洞。另外强烈建议准备一个常用工具速查表。自己在笔记里记下每个工具的用途、常用参数、典型场景比每次现查网上的教程快得多。工具是拿来用的不是拿来收藏的装了一堆不会用等于没装。5. 学习笔记怎么做从做过题到会做题5.1 题目复盘模板CTF入门最容易犯的错误是刷题不少但成长很慢——根本原因是不复盘。我要求自己每做一道有价值的题都按下面的模板写复盘笔记# [题目名] | [方向] | [难度] ## 题目线索 原题描述、附件清单、任何看起来可疑的点 ## 我的解题过程 1. 第一步做了什么看到什么现象 2. 第二步尝试了什么为什么这么试 3. 卡在哪一步卡了多久最后靠什么突破 ## flag flag{...} ## 复盘 - 这题考的知识点是什么 - 我新学会/补上了什么盲区 - 下次看到类似特征应该往哪些方向想复盘的关键不是记录结果而是记录决策过程。特别是卡在哪一步要写得详细因为下次遇到同类题目时最值钱的经验就是我当时走进了死胡同下次直接绕开。5.2 知识分类笔记除了按题目写复盘还要按知识维度维护一套分类笔记我把它分成五类漏洞知识按漏洞类型整理包括原理、触发条件、检测方法、绕过技巧、参考链接。工具手册每个工具的常用命令、参数含义、适用场景、踩坑记录。编码速查常见编码的特征和转换方法比如Base64的特征是字母数字加/结尾可能有。脚本集合写过的所有解题脚本按用途分类存放注释写清楚参数和用途。比赛记录每场正式比赛的参赛总结包括时间分配、失误点、可复用经验。这套笔记体系的价值在于它会随着你的刷题量自然增长几个星期后你就有了一个完全属于自己的CTF知识库。这个库在比赛中的价值非常大因为很多题的核心考点你其实见过只是当时没记下来、后来就忘了。5.3 笔记工具怎么选笔记工具我推荐本地优先用Obsidian或Typora写Markdown格式的笔记。原因有三一是Markdown对代码块的支持好解题脚本可以直接嵌进笔记里二是本地文件不受平台限制搜索速度快数据完全自持三是Obsidian的双链功能可以方便地把题目和知识点关联起来形成网状知识结构。如果倾向云同步也可以用语雀这类支持Markdown的在线笔记方便在手机和电脑之间切换。但不管用哪个工具坚持记录比选工具更重要。我见过有人花费大量精力折腾笔记工具和模板却从不写内容这是本末倒置。工具只是载体记录和复盘的过程才是核心。6. 新人高频问题与避坑实录6.1 我怎么什么都做不出来——心态问题几乎每个新人都经历过这种时刻看着一道Web题题目描述就一句话附件就一个文件完全不知道从哪下手心情从兴奋变成沮丧最后自我怀疑。这个问题的根源不是你不适合CTF而是你的知识调起不出来。你想想如果一个人第一次看到Base64编码他不可能知道末尾的是特征、要先转成ASCII再解第一次看到LSB隐写也不可能知道要把每个像素的最低有效位提取出来拼成二进制。这些都是经验问题不是天赋问题。解决办法很简单遇到完全没头绪的题直接看两篇同类型题目的writeup看懂思路后自己重做一遍。重做一遍的目的就是把生疏的知识点通过实操变成自己的经验。下次再遇到时你会发现自己已经有了方向感。6.2 环境装不上、工具跑不起来——环境问题排查新人时期花在环境上的时间往往比做题还多。常见问题包括Python版本不对有些脚本只支持3.8、pip install报错常见是缺少编译依赖、docker容器起不来端口冲突、Wireshark抓不到包需要管理权限等。排查思路就一条看报错信息。报错里往往直接写了缺什么包、哪个依赖没装、哪个端口被占用。把报错原文复制到搜索引擎里基本都能找到解决方案。不要做无头苍蝇式的一遍一遍重装那只会更乱。我在这里再补几个具体的坑用Docker部署靶场时容器启动报端口占用用docker ps -a查看所有容器找到占用端口的容器停掉或者换一个映射端口。Python脚本报ModuleNotFoundError先确认自己是不是装到了别的Python环境里用pip list排查多Python环境混用的情况建议直接上anaconda或虚拟环境。在Kali虚拟机上部署靶场时宿主机访问不到虚拟机里的Web服务检查虚拟机的网络模式是不是NAT或桥接以及防火墙是否拦截了相应端口。6.3 只会复制粘贴writeup——警惕假性学习看writeup本身没错错的是看完不消化、不重做。如果一道题你看完writeup之后完全没有自己动手操作一遍那这道题对你来说约等于没做。下次遇到类似的题你依然不会。我的建议是看writeup之前先把题目和附件保存好给自己规定至少想30分钟的初始思路。看完writeup后把writeup关掉凭自己的理解从头到尾做一遍。如果中途卡住再回头瞄一眼关键提示。等到能独立完整做出来这道题才真正属于你。6.4 搜不到答案——搜索能力是第一生产力很多新人把搜索等同于百度一下但CTF里最高效的搜索方式其实是混合搜索用中文搜基础概念用英文搜具体报错和技术细节。比如你遇到一个陌生的Backup文件中文搜CTF backup文件处理可能没什么结果但搜backup file ctf file command反而能搜到经典的bkcrack、zip2john工具。掌握关键词方向工具的组合搜索方式会大大提升自学效率。另外不要忽略题目本身的信息。有些题把考点明明白白写在描述里比如本题考察xx只是你急急忙忙去做题没注意到。做题前花30秒通读题目描述比闷头瞎试半小时强得多。6.5 我该先学哪个方向——方向选择的现实建议如果目标是尽快在比赛中拿到名字靠前的成绩我的建议是先专精Web或Misc其一另一个保持基础水平Crypto跟上常见模板Reverse和Pwn起步了解即可。理由很简单Web和Misc的题目量大、上手快、知识体系相对固定在比赛中最容易稳定拿分。Crypto的RSA模板题性价比也很高值得优先掌握。而Reverse和Pwn虽然单题分值高但需要投入的时间成本极大对新人来说不是最优的早期投入方向。等参加过多场比赛、对各个方向都有了直观感受之后再根据自己的兴趣确定长期主攻方向。那时候你已经有判断力了不会被哪个方向最厉害这种问题困扰——厉害的是能把一个方向吃透的人而不是方向本身。7. 写在最后关于入坑CTF我的几点个人体会带过几批新人之后我发现在所有成功入门的案例里共性不是天赋高或基础好而是稳定输出——每天固定花时间做题、坚持不懈地复盘、遇到问题及时查资料解决。三天打鱼两天晒网的新人一年后还在第一关打转而每天坚持两小时的人半年后已经能在线上赛里稳定进前30%。量变引起质变这话在CTF入门里体现得淋漓尽致。我还想建议新人在入门一个月左右就尝试参加一次正式比赛哪怕是排名靠后的线上赛。比赛和平时刷题完全不同比赛有时间压力、有分数焦虑、还有队友配合能逼你在短时间内做决策、分配精力、取舍难题这些能力平时刷题练不出来。第一次比赛成绩差太正常了但赛后认真复盘一遍你会清楚地看到自己哪里会、哪里不会、哪里紧张浪费时间这个信息比任何教程都值钱。最后建议尽早找到一个学习社群无论是学校的CTF社团还是线上的交流群。有个能问问题、讨论思路的氛围比一个人闷头刷题进步快很多。CTF这条路很长但它也是一条极其公平的路——只要肯投入时间、方法正确每个人都能走通。别急着成为大神先花三个月让自己稳定进入能独立解简单题、能看懂中等题的状态再往后前面自然就有路了。