CTF朝圣之路——从零到专家的靶场练习顺序

引言:为什么CTF是渗透测试最好的修炼方式

书本可以教你TCP三次握手,但教不会你提权失败十次之后依然保持冷静的心态。视频可以演示SQL注入,但演示不出目标机 器在凌晨三点突然”复活”时的那种狂喜。

CTF靶场是渗透测试者最接近实战的修炼场。它们提供了四个书本永远无法提供的维度:

  1. 反馈闭环:输入payload,立即看到结果。对就是对,错就是错,没有中间地带。
  2. 挫败感训练:卡关是常态。在一次次失败中,你自然会学会排查思路、搜索技巧和耐心——这些恰恰是红队最核心的品质。
  3. 知识缝合:不会再有”今天学SQL注入,明天学XSS”的分科教学。一台靶机就是一场战争,你需要同时调动Web渗透、提权、内网横向移动等所有知识,知识在实战中自然缝合。
  4. 成瘾性:Flag不是奖励,拿Flag的过程才是。那种”我终于明白了”的顿悟快感,是任何被动学习都无法提供的。

以下是我为你规划的一条科学递进的朝圣之路——从Web基础到内网域渗透,每一阶段都有明确的目标、推荐的靶场和预计的耗时。只需一张桌、一台能跑虚拟机的电脑,外加一颗耐得住寂寞的心。

“一名战士需要上阵杀敌,而你的实验室就是你的沙盘。” ——《黑客与画家》意译

第一阶段:入门启蒙——Web基础靶场

周期:第1-4周 | 难度:(1/10) | 目标:掌握Web漏洞的基本概念与手工利用

在学会跑之前,先学会爬。这一阶段的任务是穷尽Web安全的知识地图——不是浅尝辄止,而是把每一个漏洞类型都亲手利用至少10次。

1.1 PortSwigger Web Security Academy(首要推荐)

这是目前世界上最好的Web安全学习平台,没有之一。PortSwigger 是 Burp Suite 的开发商,他们的课程由浅入深,每一个漏洞类型都配有完整的交互式实验环境。唯一的要求是注册账号。

按顺序完成以下专题:

序号专题英文名学习重点
1SQL注入SQL InjectionUNION注入、盲注(布尔/时间)、带外注入、数据库指纹识别
2跨站脚本XSS反射型/存储型/DOM型、CSP绕过、Dangling Markup
3跨站请求伪造CSRFToken绕过、SameSite Cookie绕过
4服务端请求伪造SSRF基本SSRF、盲SSRF、针对内部服务的攻击
5访问控制Access ControlIDOR、参数篡改、多步流程绕过
6认证漏洞Authentication密码爆破、MFA绕过、密码重置投毒、OAuth攻击
7目录遍历Directory Traversal路径穿越、文件包含
8跨域资源共享CORS错误配置CORS导致的跨域攻击
9点击劫持ClickjackingFrame Bursting绕过、拖拽攻击
10WebSocketsWebSocketWebSocket劫持、跨站WebSocket劫持
11不安全的反序列化Insecure DeserializationJava/PHP/Ruby反序列化漏洞
12服务端模板注入SSTI识别模板引擎、构造RCE payload
13GraphQL APIGraphQL API内省查询泄露、深度递归攻击

心得:不要”读过就算了”。每个实验自己手工构造payload,而不是复制粘贴。你会惊讶地发现,花20分钟自己琢磨出来的注入点,比”看答案”通过的20个实验都记得牢。

1.2 DVWA(Damn Vulnerable Web Application)

DVWA是Web安全的”训练沙袋”。四个安全等级(Low / Medium / High / Impossible)让你逐步感受防护机制的升级,理解漏洞修复的本质。在完成 PortSwigger 之后,用 DVWA 所有四个等级通刷一遍,作为阶段性检验。

1.3 bWAPP

bWAPP 包含超过100种漏洞,覆盖面比DVWA更广。特别是它收录了一些”冷门”漏洞类型(如 Host Header 注入、XXE、命令注入变种等),适合在 PortSwigger 和 DVWA 之后查漏补缺。

1.4 sqli-labs

如果你觉得自己SQL注入已经”会了”——去试试 sqli-labs 的65关。你会重新认识什么叫”会”。从简单的联合查询到复杂的堆叠注入、Order By 注入、HTTP参数污染,每一关都是一次小的顿悟。

“当一个人执着于一门知识时,他必须在黑暗中独自摸索很久,才能找到答案。” —— 村上春树

第三阶段:系统渗透——VulnHub靶机实战

周期:第9-12周 | 难度:(4/10) | 目标:从Web层渗透过渡到系统层提权

VulnHub 提供的是完整的虚拟机镜像——你无法”重置单个漏洞”,只能在有限的信息下攻克整台机器。这种不确定性是最接近真实渗透的场景。所有靶机都可以用 VirtualBox 或 VMware 导入,完全离线运行。

  • 地址https://www.vulnhub.com
  • 费用:完全免费
  • 预计耗时:3-4周
  • 前置要求:完成第二阶段TryHackMe基础路径

3.1 推荐靶机清单(由易到难)

序号靶机名称核心技能难度预计耗时
1Kioptrix Level 1基础侦察 → Samba漏洞利用 → 手动编译EXP2-4h
2FristiLeaksWeb信息泄露 → 图片马 → Base64编码绕过 → 内核提权3-5h
3Mr-Robot多层渗透 → WordPress → 字典爆破 → SUID/nmap提权(致敬美剧《黑客军团》)4-6h
4DC-1Drupal CMS利用(Drupalgeddon)、Hydra爆破、SUID find提权4-6h
5BrainpanWindows缓冲区溢出入门 → 逆向分析 → 手工构造Shellcode6-10h
6SickOS 1.1Squid代理配置 → 代理链 → 内网Web渗透4-8h
7DevRandomCTF风格综合靶机 → 多步骤信息收集5-8h
8Tr0ll 系列(1-3)极度强调枚举能力 → 不是难,是”藏得深”3-6h/台

3.2 渗透方法论(务必养成习惯)

在第三阶段,你需要形成一套标准的渗透流程。对每一台靶机:

  1. 侦察(Reconnaissance)netdiscover 发现IP → nmap -sC -sV -p- 全端口扫描
  2. 枚举(Enumeration):Web目录扫描(gobuster / dirbuster / ffuf)→ SMB枚举(enum4linux)→ FTP/SNMP等服务版本研究
  3. 漏洞利用(Exploitation):searchsploit 查找公开EXP → 手工适配 → 如果失败,为什么失败?
  4. 提权(Privilege Escalation):linpeas.sh 自动枚举 → 手动审计 Cron jobs / SUID二进制文件 / 可写服务 / 内核版本 → GTFOBins 查阅绕过方法
  5. 后渗透(Post-Exploitation):提取密码哈希、翻找敏感文件、画网络拓扑图

“你不需要每台机器都打下来。你需要的是每一台机器打不下来的时候,下一次能在同样的坑上跨过去。“

第五阶段:中级挑战——HTB/PG中级靶机

周期:第17-20周 | 难度:(6/10) | 目标:掌握定制化利用与Active Directory攻击

进入第五阶段,你面对的不再是”有一个Exp就能打完”的机器。Medium难度的靶机往往需要理解漏洞原理后手工构造利用代码,或者组合多个低危漏洞形成攻击链。

5.1 HackTheBox Medium 退役机器

机器核心技能
ForestAS-REP Roasting → DCSync → 全域接管
ResoluteLDAP匿名查询 → DNSAdmin利用 → Dll劫持
MantisDNS枚举 → Kerberos票据攻击 → MSSQL利用
SniperLFI + 文件上传链 → NTLM中继 → 手工提权
Delivery子域枚举 → Mattermost凭证泄露 → hashcat规则破解
Stacked子域枚举 → Git泄露 → 钓鱼邮件 → CVE利用
WriteupCMS Made Simple SQL注入 → SSH登录 → 通过PATH劫持提权

5.2 OffSec Proving Grounds(PG Play——免费)

  • 地址https://www.offsec.com/labs/
  • 费用:Play 免费;Practice 需订阅($19/月)
  • 预计耗时:2-3周
  • 前置要求:HTB Easy熟练

Proving Grounds 是 OffSec(OSCP考试机构)推出的官方靶场。虽然名气不如HTB,但靶机质量很高,且与OSCP考试风格高度一致。

Play(免费)推荐:

机器核心技能
ClamAVClamAV CVE → Sendmail利用
JackoWeb + 密码喷洒 + MSI提权
Sorcerer多重SSH隧道 + 内网Web
SlortWeb渗透 + 服务利用 + 内核提权
Snookums多层攻击链

5.3 Proving Grounds Practice(付费,推荐)

机器核心技能
Kevin综合渗透 → 多服务多漏洞
Nukem子域枚举 → Web漏洞 → 提权链
PeppoDocker逃逸

为什么引入PG? OffSec的靶机有一个特点:攻击路径是线性的——你必须按设计者期望的路径走。而HTB的靶机往往有多个可能的入口点。训练线性思维对OSCP考试至关重要,而HTB训练的是”真实渗透”中的发散思维。两种训练都不可或缺。

第七阶段:专家级——高级挑战

周期:24周后 | 难度:(9-10/10) | 目标:成为真正的渗透专家

当你完成前六个阶段,你已经有能力进入以下级别的挑战。这一阶段没有”毕业”,只有永无止境的攀登。

7.1 HackTheBox Hard / Insane 级别

进入Hard/Insane的世界,意味着:

  • 你需要自己逆向分析二进制文件,挖掘0day级别的漏洞
  • 攻击路径被深度隐藏,可能需要在多层内网之间跳转
  • 可能需要利用多个低危漏洞构造长链攻击
  • 甚至需要绕过杀软、EDR

7.2 OffSec Proving Grounds(Practice Tier 全刷)

逐一攻克PG Practice中所有的中级/高级机器,这是准备OSCP/OSEP/OSWE的最佳训练场。

7.3 Pentester Academy Labs

  • 地址https://www.pentesteracademy.com
  • 特色:拥有大量专业化的实验课程(Kerberos攻击、SCCM攻击、Linux内网渗透等),视频讲解非常详尽。

7.4 真实CTF比赛

真正的试金石是参加顶级CTF比赛:

  • DEF CON CTF 资格赛:CTF界的”世界杯”
  • Google CTF:Google主办的顶级赛事
  • Plaid CTF:卡内基梅隆大学Plaid Parliament of Pwning主办的硬核比赛
  • HITCON CTF:台湾代表队主办,亚洲最高水平
  • Real World CTF:长亭科技主办,侧重真实场景

参加策略:不要怕”上去就挂”。第一次参加DEF CON资格赛,你大概率一道题都做不出来——这太正常了。你的目标是看懂Writeup,并复现其中的技术。参加5场顶级CTF之后,你会发现自己看待漏洞的眼光已经完全不同。

最后的叮咛

这条路很长,非常长。从你第一次在DVWA里输入 ' OR 1=1 --,到你有能力在DEF CON资格赛里独立拿下pwn题,中间可能隔着两年、三年,甚至更长。但每一次卡关时,请记住:

你不是遇到了瓶颈,你只是离答案更近了一步。

渗透测试的本质不是”知道多少漏洞”,而是在完全未知的环境下,保持冷静、系统地排查、不断地假设与验证。你在CTF里培养的每一分耐心,都是未来面对真实红队任务时最宝贵的武器。

现在,打开你的终端,开始第一台靶机吧。

# 你的第一个命令
docker run --rm -it -p 80:80 vulnerables/web-dvwa

“通往精通的旅途没有捷径,但每一步都通向星辰。” —— 匿名红队老兵