第一次在师兄屏幕里看到 CTF 的 flag 滚过去时,我还在大三学 C 语言,连 POST 和 GET 都分不清楚,更不知道什么叫靶场。如果你现在翻开这篇教程,想从零开始搞懂 CTF,又不想被满屏的工具包、Kali 命令和英文 writeup 劝退,那这篇就是冲着你写的。我把赛制规则、三个月学习路线、主流靶场的搭建方法、常用工具包清单,以及两道完整到能照做的实战题,全部按自己实际走通的路捋一遍。提前声明:这不是一本五万字的百科全书,而是一条我试过、也带人试过的入门路径,你照着走,第一个 flag 不会太远。
1. 先别急着下工具:赛制和方向一次讲清
很多人一上来就装 Kali、开 Burp Suite,结果连 CTF 和渗透测试有什么区别都没概念。CTF,全称 Capture The Flag,核心就一件事:在给定题目或环境中找到一段特定格式的字符串——通常叫 flag,提交给平台换分数。听起来简单,真正麻烦的是怎么找到它。找 flag 的过程会用到 Web 漏洞、密码分析、隐写取证、逆向工程、二进制利用等一堆技能,而这恰恰是 CTF 最有意思的地方。
1.1 三种赛制决定了你怎么练
常见的 CTF 赛制有三类,不同赛制对技能的要求差别很大,先看清再选方向,比埋头刷题重要得多。
第一种是解题赛,英文叫 Jeopardy。题目被分成 Web、Misc、Crypto、Reverse、Pwn 等类别,每道题对应一个分值,解出后提交 flag。绝大多数线上赛和新人练习平台都是这种形式,优点是你可以只做自己擅长的方向,缺点是容易偏科。
第二种是攻防对抗赛,英文写 AWD,Attack With Defense。每支队伍分到一套相同的靶机,你要一边修复自己机器的漏洞,一边利用别人机器的漏洞拿分。这种赛制非常考验实战反应和脚本编写速度,一般入门三个月后再碰比较合适,否则心态会直接被打崩。
第三种是综合场景赛,题目会模拟一个偏真实的企业或业务系统,给你一个入口,让你像渗透测试一样逐步深入,最终拿到核心数据。很多数据安全赛真题就采用这种形态,其中会有日志分析、敏感信息识别、异常流量排查等环节,本质还是 CTF 那套考核框架,只是场景更加落地。
别急着只盯一种。入门期建议以解题赛为主,它最容易建立反馈循环;等到基础扎实了,再组队打 AWD 和综合场景赛,那时候你会发现前面的积累都能复用。
1.2 Web、Crypto、Misc:先选一个方向入门
CTF 的题目方向大致可以分成五类,我先按大多数新手能接受的程度排个序。
| 方向 | 核心考点 | 上手难度 | 适合人群 |
|---|---|---|---|
| Web | SQL 注入、XSS、文件上传、命令执行、源码审计 | 低到中 | 学过网页、对请求响应感兴趣的人 |
| Misc | 隐写、流量分析、取证、编码、键盘记录、二维码 | 低 | 细心、喜欢做“解谜”的人 |
| Crypto | 古典密码、RSA、对称加密、编码转换 | 低到中 | 对数学不反感、愿意写脚本的人 |
| Reverse | 逆向工程、脱壳、算法还原 | 高 | 懂汇编、懂底层的人 |
| Pwn | 栈溢出、堆利用、沙箱逃逸 | 高 | 懂 C 语言、懂操作系统内存的人 |
我见过太多零基础学员一上来就冲 Pwn 和 Reverse,结果被内存地址和汇编指令劝退,觉得自己不适合 CTF。真不是你的问题,是顺序问题。Web、Misc、Crypto 这三个方向,只要会一点 Python、懂一点基础概念就能开始玩,成就感来得快,能帮你撑过最容易被劝退的第一周。
1.3 看懂 flag、积分和规则,再开始刷题
再强调一下 flag 格式,绝大多数比赛统一用flag{...}这种形式,也有的平台用ctf{...}或自己定义的花括号格式。拿到一串可疑字符后,先确认格式再提交,提交格式错了,平台会提示 flag 错误,但不会告诉你差在哪。
积分规则也值得花两分钟看明白。通常难度越高分值越高,限时越短分值越高;很多平台还有“一血”加成,也就是第一个解出某道题的人能多拿分。另外,比赛过程中绝对不能把其他人的 flag 发到群里对答案,平台后台会记录提交时间和提交人,一旦判定作弊,轻则取消成绩,重则封禁账号。这一点,新手比赛时最容易忽略。
2. 90 天从零基础到能打比赛的路线图
我带过的学员里,最快一个从完全零基础到打线上公开赛拿到解题数是零,对,零。为什么会这样?因为他前面三周全在研究“装什么工具”,一个题没碰。所以我把路线压缩成 90 天,每个阶段做什么、做到什么程度算合格,都写得非常具体。
2.1 第一个月:把“看懂题目”的能力补齐
第一个月不急着学漏洞原理,先干三件事:会写点 Python、会用 Linux 命令、看得懂 HTTP 请求。
Python 是整个 CTF 生涯最核心的工具语言,尤其 Misc 和 Crypto 方向,几乎每题都要写脚本。你不需要啃完整本语法书,只要会用requests发请求、会用base64和binascii做编码转换、会写for循环读文件就算达标。
Linux 命令同样重要。至少要熟悉ls、cat、find、grep、strings、file、netcat这几个。尤其是strings和file,很多取证题第一眼不知道是什么类型的文件,跑一遍这两个命令基本心里有数。
HTTP 协议是 Web 方向的地基。你需要知道 GET 和 POST 的区别、Cookie 是怎么传递的、状态码 200 和 403 各代表什么。我当时是拿浏览器 F12 里的“网络”选项卡反复看请求,看几次就慢慢有感觉了。
这个月的验收标准很简单:给你一个小文件,你能用file判断出类型,用strings找到可疑字符串,写个 Python 脚本把一行 Base64 解出来。做不到这些,就先别往后走。
2.2 第二个月:选一个主攻方向,把题刷透
第二个月开始聚焦。别想着五个方向同时推进,人的精力有限,东一榔头西一棒子,三个月后什么都拿不出手。我的建议是 Web、Misc、Crypto 三选一,先主攻一个,其他两个遇到什么了解什么就行。
选 Web,就把 SQLi-Labs 前二十关和 XSS-Labs 全部通关,再用 Pikachu 靶场把文件上传、命令执行、CSRF、SSRF 这些模块过一遍。选 Misc,就去把 Stegsolve、Audacity、Wireshark 这几个工具的使用摸透,每天做一两道图片隐写和流量分析题。选 Crypto,就从凯撒密码开始,一路做到 RSA 的简单攻击模型,每个算法都自己用 Python 实现一遍,不要抄现成脚本,自己写过才记得住。
第二个月最忌讳的,是今天写 Web 题明天研究 Pwn 后天又去看流量分析,最后每道题都只会“看答案觉得不难”。专攻一个方向,至少保证这个方向的大多数题目你能独立解出来,这才算真正入门。
2.3 第三个月:刷题节奏、笔记规范和第一次参赛
第三个月进入刷题和模拟比赛阶段。我的刷题节奏是每天两道题,固定在晚上,每道题限时四十分钟。四十分钟解不出来,看 writeup,看懂了不算完,必须隔天自己独立重做一遍。这个“隔天重做”看起来笨,实际效果比连刷十道题都好,因为它强迫你去想解法而不是背答案。
从第一天刷题起,就要做笔记。我们圈内管这个叫 writeup,也就是解题报告。一份合格的 writeup 至少要包含题目来源、知识点标签、完整解题过程、flag、踩坑记录。别嫌麻烦,三个月后你回头看,这些笔记就是最有价值的个人参考资料,比任何教程都贴近你自己的知识盲区。
第三个月结束前,去参加一次线上公开赛,哪怕只解出一道 Misc 也值得。比赛的意义不全在分数,而是逼你在限时和分数压力下调用学过的知识,这种状态和平时慢慢刷题完全不同。
3. 新手必收:靶场和在线平台到底怎么选
工具可以后面再装,但靶场和练习平台一定要早点选好。靶场就是给你练手用的“模拟战场”。为什么非得有靶场?因为你没有权限对随意目标做测试,但平台给你授权的靶场可以随便折腾,漏洞打坏了也不会有任何问题。这条边界,从入门第一天就必须想清楚。
3.1 本地单机靶场:DVWA、Pikachu、SQLi-Labs、XSS-Labs
先介绍四个最适合入门练习的本地靶场,都能在自己电脑上跑起来。
DVWA 是最经典的 Web 漏洞靶场,包含 SQL 注入、XSS、文件上传、命令执行等常见漏洞,每个模块都有 Low、Medium、High 三个难度。装好之后建议从 Low 难度开始,逐个模块过一遍,它能帮你建立对漏洞的直观认识。
Pikachu 是国内常用的 Web 漏洞练习靶场,模块设计比较贴近中文场景,覆盖了暴力破解、XSS、SQL 注入、RCE、文件包含、越权等。它名字看着可爱,里面的漏洞可都不客气。XSS-Labs 是专门练 XSS 的关卡靶场,从第一关到最后一关难度逐级提升,适合把反射型、存储型、DOM 型 XSS 一次练明白。SQLi-Labs 则是 SQL 注入专项靶场,一共几十关,从报错注入、布尔盲注到时间盲注全覆盖,是吃透 SQL 注入的必经之路。
这几个靶场多是 PHP 项目,环境配置容易让新手崩溃,所以我一般直接推荐用 Docker 跑,命令都比较短,比如:
docker run -d -p 8080:80 vulnerables/web-dvwaPikachu 和 SQLi-Labs 在 GitHub 上都有仓库,搜关键字就能找到,里面一般写明 Docker 启动方式。如果一时不想学 Docker,也可以在 Windows 上用集成环境跑,但相信我,Docker 这条路更省心。
3.2 集成漏洞环境和综合靶场:Vulhub、VulnHub、红日靶场
基础打好之后,你会遇到一些不满足于单点漏洞、想练完整攻击链的时刻。这时候就该上 Vulhub。
Vulhub 是一个基于 docker-compose 的漏洞环境集合,覆盖了大量中间件和组件的已知漏洞,比如常见的 Redis 未授权访问、Web 中间件解析漏洞等。它的优点是“一键拉起一个漏洞环境”,命令就那么几条,适合用来复现具体漏洞和练内网横向思路。
VulnHub 则是提供虚拟机镜像的靶场平台,下载一个镜像导入虚拟机,里面就是一个完整的模拟系统,需要你自己从信息收集开始打,走完整的渗透流程。这不是点一下就能过的题目,更像一次“开卷渗透测试”。
还有国内圈子里常说的“红日靶场 1”,是一套偏向内网域渗透的综合靶场,涉及域环境、横向移动、权限维持等,通常需要有 Web 渗透基础后再碰。这个阶段的靶场已经不适合“解题式”的刷了,建议组个小队一起打,边打边总结,收获会更大。
3.3 在线练习平台:ctfshow、Polar、Bugku 怎么挑
本地靶场练的是“确定性的漏洞”,在线平台练的是“比赛的临场感”。国内几个常用平台各有侧重。
ctfshow 的中文题目库非常丰富,而且有专门的入门题序列,难度从零起步,对新手尤其友好。Polar 平台也提供周赛和日常题库,题目风格比较贴近国内线上赛,遇到“keyboard2.0”“盖房子”这类带点趣味名的题不用慌,本质都是常见考点套了层皮。Bugku 是老牌中文练习平台,题目分类清晰,适合按方向刷。
国外平台如 VulnHub、TryHackMe 内容质量很高,但对刚入门的人来说存在语言门槛和付费门槛,不是必需品,建议有一定基础后再考虑。在线平台最大的意义是让你习惯在真实平台界面里提交 flag、看排名、复盘他人 writeup,这一套流程只有真打比赛才能熟练。
3.4 靶场启动失败:我踩过的五个经典坑
聊了这么多环境,再分享一下我最常遇到的问题,新手十有八九会碰到。
第一个是端口占用。80 端口被系统或其他程序占用,导致页面打不开。解决很简单,映射到其他端口就行,把命令里的80:80改成8080:80之类即可。
第二个是 PHP 版本不兼容。老靶场项目往往面向 PHP 5.x 和 MySQL 5.x 设计,你在新版 PHP 8 环境下跑起来,轻则警告刷屏,重则页面白屏。用 Docker 跑靶场能在很大程度上避免这问题,因为镜像里的环境是作者配好的。
第三个是 Docker 镜像拉取失败或者特别慢。这个没有太多捷径,一般先检查网络是否正常,再考虑更换 Docker 镜像源,换源后重新拉取通常会好很多。
第四个是数据库没初始化。很多靶场启动后需要访问一个 install 页面或者手动执行初始化脚本,才能建好数据表。页面白屏时别只盯着 Web 端,先看容器日志,日志里通常会告诉你缺了什么。
第五个是浏览器缓存干扰。改完配置再刷新时,旧页面会被缓存顶住,建议无痕窗口打开,省去很多怀疑人生的时间。
4. 工具包清单:从 Kali 到 CyberChef 的极简组合
提到 CTF 工具包,绕不开 Kali Linux。它是基于 Debian 的渗透测试发行版,预装了数百款工具,不少 CTF 题目的标准解法就是要靠里面的某个工具。但 Kali 不是越新越好,也不是装得越全越好,关键在于你会不会围绕自己的主攻方向整理一套趁手的组合。
4.1 Kali Linux:先装起来,桌面选 Xfce 就够
Kali 的安装方式有物理机、虚拟机、WSL 等,新手建议直接装虚拟机。使用虚拟机的好处是随意折腾,靶场被打坏了、工具装崩了都不会影响主系统。
虚拟机软件用 VMware 或 VirtualBox 都行,Kali 官方提供了 vmware 镜像,下载后直接打开就可以使用,比自己用 ISO 安装省事很多。桌面环境我建议选 Xfce 而不是默认的 GNOME,因为 Xfce 更轻量,内存占用小,跑 Burp Suite 和浏览器也不卡。
装完第一件事是更换软件源。Kali 默认源在部分网络环境下更新很慢,换成国内镜像源后执行apt update和apt upgrade,再按需安装工具。这一步属于常规系统配置,但确实能让后续体验好不少。
你不用把 Kali 里所有工具都记住,先认识自己方向最常用的五个就行。Web 方向先盯 Burp Suite、sqlmap、dirsearch、nmap、curl;Misc 方向先盯 binwalk、strings、steghide、Wireshark、exiftool。其他工具,用到再学。
4.2 Web 方向核心工具:Burp Suite 和 sqlmap 必须会用
Web 方向最核心的工具是 Burp Suite。它本质上是一个拦截代理,浏览器流量先经过它,你可以在流量到达服务器之前修改请求参数,也可以查看服务器返回的原始响应。很多题目只看“最终页面”是看不到线索的,必须用 Burp 去看原始的请求和响应头。
Burp 的基本工作流我简化成四步:设置代理,浏览器走 8080 端口;打开 Proxy 的 Intercept 开关拦截请求;把可疑请求发送到 Repeater 手动改参数测试;需要爆破时再放到 Intruder 跑字典。Community 版就够入门用,没必要找破解版,破解版风险极大,得不偿失。
sqlmap 是 SQL 注入检测的自动化工具,适合做初步探测,但绝不能只会一键梭哈。正确用法是先用浏览器和手工 payload 判断存在注入点,再用 sqlmap 验证和数据提取。一条基础命令长这样:
sqlmap -u "http://127.0.0.1:8080/query.php?id=1" --batch再次提醒,这条命令只应该对着你自己搭建的靶机、或者比赛方明确授权的题目执行。CTF 的底线就是授权,守不住这条底线,技术再强也是给自己挖坑。
目录扫描工具 dirsearch 也很常用,一股脑跑一遍常见目录名,能快速发现源码备份、管理后台、未授权文件等意外惊喜。命令样式是:
dirsearch -u http://127.0.0.1:8080/跑出来的结果往往藏着 Web 题的突破口。
4.3 Misc、Crypto 与取证方向的极简工具链
很多人觉得 Misc 题就是“玄学”,其实不是,它有一套固定的工具打法。
文件分析三件套:file识别类型,strings提取可见字符串,binwalk分离隐藏文件。图片隐写用 Stegsolve,它可以逐通道查看图片,LRB 隐写和像素异常在它面前藏不住。音频题用 Audacity,打开频谱图,有些题会把 flag 绘制成一段高频波形,肉眼看不见,换到频谱视图一眼就能扫出来。
流量分析题的主力是 Wireshark。入门期你只需要掌握三招:按协议过滤,比如只显示http流量;追踪 TCP 流,看完整的请求响应内容;导出 HTTP 对象,把流量里传输过的文件直接导出来。很多流量题的 flag 其实就在某个不起眼的 POST 请求里,或者藏在导出的图片中。
编码和密码题用 CyberChef 最顺手,它是一个在线的编码解密工具箱,Base64、Hex、URL 编码、凯撒密码都能一键转换。遇到替换密码但不知道密钥的时候,可以用 Quip 这类自动化词频分析工具辅助,它能通过频率分析给出候选明文。密码爆破方面,John the Ripper 和 hashcat 属于后期才需要深入的工具,入门期先知道它们的存在就行。
4.4 用 docker-compose 把常用靶场收进一个工具箱
工具和靶场搞多了之后,你会发现每天手动启动好几个容器很麻烦。这时候可以用一份 docker-compose 文件把常用靶场一起管起来。
比如你在项目目录下新建docker-compose.yml,内容大致长这样:
version: '3' services: dvwa: image: vulnerables/web-dvwa ports: - "8080:80" pikachu: image: 你的pikachu镜像名 ports: - "8081:80"然后在同一个目录执行docker compose up -d,就能一次性拉起全部靶场。要停掉就运行docker compose down。这套东西看起来简单,却能极大节省你反复敲命令的时间,让刷题流程变得流畅。
镜像名如果记不准,就去 Docker Hub 或对应项目的 GitHub 仓库看说明,不要随便使用来历不明的整合包。这里多说一句,网上流传的各种“CTF 全家桶工具包”,我不太推荐下载,里面很可能被人塞了后门。需要什么工具就装什么工具,官方源一抓一大把,没必要图方便冒这个险。
5. 实战拆解:两道典型题的完整拿 flag 过程
光讲工具不讲题,就像光教菜刀不教切菜,看一百遍也不会做。这一章我用两道典型题,把解题思路从头到尾走一遍。再一次强调,题目环境来自授权的 CTF 靶场或本地搭建的靶机,不要在未授权目标上尝试同样操作。
5.1 Web 题:一个“输入 ID 查询”背后藏着的 SQL 注入
有一类特别经典的 Web 入门题,页面看起来就是一个查询框,题目描述写着:“输入 ID 即可查询到信息,但是报错感觉好奇怪……小小查询系统。”看到“报错”两个字,优先怀疑 SQL 注入。
我惯用的步骤一共四步。第一步,看请求参数。直接在 URL 里改参数,比如默认访问是query.php?id=1,我就在后面加一个英文单引号变成id=1'。如果页面报数据库错误,说明参数可能被直接拼进了 SQL 语句。
第二步,验证闭合和列数。用id=1' order by 2-- -不断试,直到报错停止,就能确定查询结果的列数。order by的作用是让查询结果按第几列排序,如果指定列数超过实际列数,数据库会报错。
第三步,联合查询。确认列数后,用union select把我们要查的数据拼到正常结果里。比如知道是两列,就可以用:
id=1' union select user(),database()-- -这样页面上就会把数据库用户名和库名显示出来,等于拿到了地图。第四步,查表和查数据。继续用union select去查information_schema里的表名、列名,最后定位到存放 flag 的那张表。
这类题的解法和工具都在前文介绍过,真正难的不是某一个 payload,而是你能否形成这套“报错→判断→探测→提取”的稳定套路。多刷 SQLi-Labs 的几十关,这个套路就会变成肌肉记忆。
5.2 Misc 题:把一段奇怪的按键记录还原成一句话
Misc 题的趣味性很强,比如有类键盘记录题,题目给一个.txt文件,里面是类似qwe rty uio p这样看起来完全没规律的字符串,还有的会叫“keyboard2.0”这种名字,一看就是键盘相关。
碰到这种题,千万别急着猜。第一件事是打开文件,观察内容结构。如果内容是按键名或者坐标数字,就要去查题目的提示或程序逻辑。很多键盘记录题的原理,是把键盘按键的物理坐标按一定顺序读出来,再映射回字符。
通用做法是写一个 Python 脚本,把按键数据按键盘布局还原。比如数据格式是“行列号”,可以这样做:
keyboard = [ list("qwertyuiop"), list("asdfghjkl"), list("zxcvbnm") ] data = open("keyboard.txt").read().strip().split() result = [] for item in data: row, col = map(int, item) result.append(keyboard[row - 1][col - 1]) print("".join(result))注意,不同题目的数据格式不一样,脚本只是通用示例,你得先花几分钟观察数据,再调整解析逻辑。这类题考验的是读数据和写脚本的能力,而不是多高深的密码学。看到“键盘记录”不要慌,它多数时候比你想的简单得多。
5.3 Writeup 怎么写才不白写
写完一道题,只提交 flag 是远远不够的,真正的成长发生在写 writeup 的过程里。我自己的 writeup 模板固定是这几块:
# 题目名 - 来源:平台名 / 比赛名 - 分值:100 - 知识点:SQL 注入 ## 解题过程 1. 打开页面,发现查询功能 2. 参数后加单引号报错,判断存在注入 3. 使用 order by 确定列数 4. union select 提取数据 5. 拿到 flag ## Flag flag{...} ## 踩坑记录 - order by 从 1 开始试,不要直接跳 - 提交前检查 flag 格式写的时候问自己三个问题:这题的考点是什么?我在哪一步开始迷糊的?下次碰到同类题,第一步该做什么?想清楚这三个问题,writeup 就算写到位了。把每份 writeup 存成 Markdown 文件建个目录,三个月后你就有了一本完全私有化的“CTF 题库笔记”,价值远超收藏一百个教程链接。
6. 避坑指南和长期成长建议
最后聊一些我认为最该避开的坑,很多内容是我自己踩出来的,代价不小,希望你别再重复。
6.1 新手最容易踩的八个坑
第一个坑,只装工具不刷题。有些人能把 Kali 调出十几个工作区,工具更新得比系统还勤,就是不肯打开一道题。工具永远是辅助,flag 是靠脑子想出来的。
第二个坑,sqlmap 一把梭。注入题先上 sqlmap,跑不出来就放弃,完全不知道手工注入的流程。这会让你的 Web 能力长期停留在“会用工具”的层面。
第三个坑,过早啃 Pwn 和 Reverse。零基础直接搞汇编、堆栈、脱壳,大概率三天放弃。不是这些方向不好,而是你应该在 Web 或 Misc 建立基础后,再慢慢迁移。
第四个坑,忽略授权边界。在未经授权的系统上跑扫描、打 payload 是非常严重的问题,CTF 圈子最看重这个。牢记一句话:只打靶场,只打授权的比赛环境。
第五个坑,不写 writeup。刷题如流水,今天做明天忘,刷一百道也沉淀不下来。笔记就是你和过去的自己对话,断不得。
第六个坑,资料囤积症。收藏夹里几十个教程,网盘里十几个 G 的“CTF 资料包”,真正打开的没几个。建议按 90 天路线走,一份资料吃透再看下一份。
第七个坑,只抄 writeup 不复盘。思路卡住了看答案很正常,但看完必须自己在干净环境里重做一遍,否则下次遇到相似题依然懵。
第八个坑,忽略基础知识。有些题看着很高端,最后靠的是主机名解析、网络协议和操作系统常识。基础不牢,地动山摇。
6.2 从 90 天到一年:逐步进阶的路线建议
90 天结束,你应该已经具备独立解 Web 或 Misc 入门题的能力了。接下来的半年到一年,我的建议分三步。
第一个阶段,扩展方向。把之前没深入过的 Crypto、Reverse、Pwn 各挑两到三题入门,不需要全会,但要知道每个方向考什么、用什么工具,这样在团队里才接得住不同类型的题。
第二个阶段,参加系列赛。找一个固定平台的周赛或月赛,坚持每周打。成绩不重要,但你要习惯每周定时抽出几个小时做限时题,形成自己的做题节奏。
第三个阶段,尝试团队作战。找两三个水平相当的人组队,模拟打一次 AWD。你会发现组队赛和个人赛完全是两种游戏:一个人再强也扛不住多方攻击,团队里的分工协作、信息同步和备份修复,都是需要提前演练的。
如果对数据安全和综合场景赛感兴趣,也可以在这个阶段多关注相关赛事真题,它们往往融合了流量分析、系统日志、敏感信息识别等环节,练的是更贴近实际业务的能力,同时也是对前面 Web、Misc 知识的一次大整合。
6.3 关于工具和资料的最后一个建议
我理解很多人看到“工具包下载”几个字会想直接问“有没有打包好的链接”。但我的真实建议还是别用各种整合包。CTF 工具链的维护本身就是一种学习,你在找工具、装环境、看文档的过程中,会积累大量解决问题的经验,这些经验在比赛里同样是战斗力。
所有常用工具都能从官方渠道拿到:Kali 自带、各工具官网、GitHub Release 页、Docker Hub。笔记模板我上面给了,靶场清单和命令也给了,照着搭就行。
我个人实际做项目期间的体会是,CTF 入门最大的门槛从来不是天赋,而是前两周能不能忍住“看不懂”的焦躁。头两周你会怀疑自己是不是太笨,其实你只是还没形成这套解题语言的直觉。等第一个 flag 跳出来的那一刻,你会突然明白之前所有枯燥的配置和命令都是值得的。所以别纠结太多,先去把一个靶场跑起来,跑起来之后再回来看这篇文章的后半段,感受会完全不同。