Web 安全学习路线图 + 靶场清单:从零基础到红队队长
前言
经常被问:"我想入门 Web 安全,应该从哪开始?" 本文给出一份 可执行的 3 年路线图,每个阶段配套:学什么、用什么靶场、做什么项目。
一、总路线图
第 1 年:基础筑基
├── 编程语言 + 网络基础
├── Web 技术栈(前后端)
├── OWASP Top 10
└── 能独立完成 PortSwigger 学院
第 2 年:实战进阶
├── 渗透测试方法论
├── 工具链精通(Burp / Nmap / SQLMap)
├── CTF 参与(Web 方向)
├── 能做 SRC 挖洞(稳定中低危)
└── 拿到 OSCP / CISP 等证书
第 3 年:专精深造
├── 选择方向(云 / API / 逆向 / 红队)
├── 漏洞利用开发
├── 演讲 / 出书 / 开源项目
├── 能挖到 0day / Critical 漏洞
└── 进入顶级安全团队
二、第 1 年:基础筑基
2.1 编程语言(3-6 个月)
必学(按优先级):
1. Python ⭐⭐⭐⭐⭐
原因:渗透测试工具开发、自动化、Exploit 脚本
重点:requests, beautifulsoup, flask, asyncio, socket, struct, subprocess
资源:《Python 编程:从入门到实践》、freecodecamp
2. JavaScript / TypeScript ⭐⭐⭐⭐
原因:XSS 利用、前端分析、Node.js 安全
重点:原型链、eval、unsafe-eval、CSP bypass
资源:《JavaScript 高级程序设计》
3. SQL ⭐⭐⭐⭐
原因:SQLi 是高频漏洞,必须精通
重点:UNION、时间盲注、错误注入、二次注入、存储过程
4. Bash / Shell ⭐⭐⭐
原因:扫描流水线、自动化脚本
重点:grep, awk, sed, xargs, find, while/read
5. C / C++ ⭐⭐
原因:逆向分析、Exploit 开发需要懂底层
重点:内存布局、指针、栈/堆结构
6. Go(可选)⭐⭐
原因:现在很多安全工具用 Go 写(ProjectDiscovery 全家桶)
2.2 网络基础(2-3 个月)
必须掌握:
- OSI 七层模型 + TCP/IP 四层
- TCP 三次握手 / 四次挥手 / SYN 洪水
- HTTP/1.1 / HTTP/2 / HTTP/3 协议
请求方法、状态码、Header、Cookie、Session
CORS、CSP、HSTS、X-Frame-Options
- DNS 递归/迭代、A/AAAA/MX/TXT/NS 记录
DNS 劫持、缓存投毒
- TLS/SSL 握手过程、证书验证
- 常见端口服务(21,22,23,25,53,80,110,443,445,3306,3389)
推荐资源:
- 《图解 HTTP》
- 《计算机网络:自顶向下方法》
- portswigger.net/web-security(免费入门)
2.3 Web 技术栈(2-3 个月)
前端(懂原理就行):
- HTML / DOM / DOM XSS 原理
- CSS(能读懂)
- JavaScript 原型链、事件冒泡
- React / Vue / Angular(知道安全特性)
- Single Page Application(SPA)认证流程
后端(能写简单的):
- PHP(历史包袱,漏洞多,必须会读)
- Java / Spring / Spring Boot(企业常用)
- Python / Django / Flask
- Node.js / Express
- .NET / ASP.NET(反序列化重灾区)
数据库:
- MySQL / MariaDB
- PostgreSQL
- Redis(未授权、数据泄露)
- MongoDB(NoSQL 注入)
基础设施:
- Nginx(配置安全、HTTP 走私)
- Apache(.htaccess、目录遍历)
- Tomcat(manager 后台、AJP 文件读取)
- Docker(逃逸、挂载安全)
- Kubernetes(RBAC、逃逸)
2.4 OWASP Top 10 + 靶场
OWASP Top 10 (2021) + 对应靶场:
| 排名 | 漏洞类型 | 靶场 | 学习资源 |
|------|---------|------|---------|
| A01 | 断访问控制 | PortSwigger IDOR / DVWA | PortSwigger Academy |
| A02 | 加密失败 | CryptoHack / DVWA | PortSwigger Cryptography |
| A03 | 注入 | SQLi-labs / PortSwigger | PortSwigger SQL Injection |
| A04 | 不安全设计 | PortSwigger Business Logic | PortSwigger Business Logic |
| A05 | 安全配置错误 | HackTheBox Starting Point | PortSwigger Information Disclosure |
| A06 | 易受攻击组件 | Nuclei / Retire.js | PortSwigger Known Vulnerable |
| A07 | 认证失败 | PortSwigger Authentication | PortSwigger Authentication |
| A10 | SSRF | SSRF Playground | PortSwigger SSRF |
必做靶场(按顺序):
1. PortSwigger Web Security Academy(免费,50-100 小时)
2. DVWA( Damn Vulnerable Web Application)
3. SQLi-Labs(SQL 注入 1-20 关)
4. Hack The Box Starting Point(10 台入门机)
5. Pikachu(国内中文靶场)
6. Vulhub(Docker 靶场,一键起)
三、第 2 年:实战进阶
3.1 工具链精通
核心工具:
扫描类:Nmap / Masscan / ffuf / nuclei
指纹类:Wappalyzer / WhatWeb
漏洞利用:Burp Suite Pro ⭐ / SQLMap / Xray / Metasploit / Cobalt Strike
后渗透:Mimikatz / Impacket / BloodHound
Web 专用:ParamMiner / Arjun / GitDorker / SSRFmap
目标:别人说"扫一下这个网段",你 10 秒内能敲出正确命令组合
3.2 CTF 参加
CTF Web 方向推荐:
入门级:Buuoj(国内免费)、CTFHub、PicoCTF
中等级:CTFtime 全球赛事、CTFshow、攻防世界 XCTF
高级:CTFtime Quals 级别比赛
从 CTF 中学什么:
- 解决非标准 Web 漏洞
- 快速编写 Exploit
- 团队协作(分时、分工、分享)
- 熟悉绕过技巧(WAF、鉴权、文件上传)
3.3 SRC 挖洞
目标:每个月稳定 3-5 个中低危漏洞
阶段:
1. 先投补天 / 漏洞盒子(审核快、反馈多)
2. 再进阿里 / 腾讯 / 字节(赏金高)
3. HackerOne / Bugcrowd(国际平台上限最高)
能力清单:
[ ] 子域名枚举(subfinder + amass + crt.sh + wayback)
[ ] Nuclei 批量扫
[ ] 目录爆破(ffuf)
[ ] 手工越权测试(IDOR)
[ ] SQLi 手工注入 + SQLMap
[ ] 敏感信息泄露(git / .env / actuator)
[ ] 参数发现 + Fuzz
[ ] 能写清晰的漏洞报告
推荐做法:每挖到一个漏洞写一篇分析文章,发到 FreeBuf / 先知社区
3.4 证书
有用的证书(按实用度):
1. OSCP ⭐⭐⭐⭐⭐ 渗透测试必备
2. OSWE ⭐⭐⭐⭐ Web 渗透专项
3. CISP-PTE ⭐⭐⭐ 国内合规
4. AWS Security ⭐⭐⭐ 云安全
5. CEH ⭐⭐ 名气大但内容较旧
四、第 3 年:专精深造
4.1 六大方向选一个
1. Web 渗透(主流)
企业需求最大,入门门槛最低
延伸:红队 / 蓝队 / Bug Bounty
2. 云安全(热门)
AWS / GCP / Azure 安全配置
Kubernetes 渗透与加固、容器逃逸
延伸:云原生安全
3. 逆向工程(硬核)
恶意软件分析、二进制漏洞挖掘
反编译 / 脱壳 / 反调试
延伸:CVE 研究员
4. 移动安全
iOS / Android 逆向、APP 渗透
Frida / Xposed 框架
延伸:IoT 安全
5. 供应链安全
DevSecOps 集成、开源组件扫描
CI/CD 管道安全、SBOM
6. 红队 / Adversary Simulation
MITRE ATT&CK 映射、C2 指挥控制
Cobalt Strike / Brute Ratel / Havoc
4.2 0day 与 CVE
发现 0day 的方法:
方法 A:GitLab / GitHub 泄露
1. 关注大公司公开的安全提交
2. git log --all --diff-filter=M 看修改
3. 如果是安全补丁 -> 逆向补丁 -> 写 Exploit
4. 提交到 SRC 或 CVE
方法 B:Fuzzing
对热门开源项目做模糊测试
LibFuzzer / AFL / Honggfuzz
方法 C:代码审计
直接读开源代码找逻辑漏洞
推荐审计:Spring Framework、Log4j、Jackson、Fastjson
方法 D:实战中挖
做渗透时发现客户组件版本有问题
追溯 -> 发现是通用漏洞 -> 提交 CVE
CVE 提交流程:
1. 确认漏洞影响
2. 写清晰的 PoC + 影响分析
3. 提交到 CNA(CNVD / CERT/CC / 厂商安全邮箱)
4. 厂商确认 -> 分配编号 -> 修复 -> 披露
4.3 开源贡献
新人友好项目:
1. Nuclei Templates(给 Nuclei 写 POC)
https://github.com/projectdiscovery/nuclei-templates
PR 合进官方仓库 = 被全世界猎人使用
2. PayloadsAllTheThings(Payload 集合)
https://github.com/swisskyrepo/PayloadsAllTheThings
3. OWASP Cheatsheet Series(知识沉淀)
4. Exploit-DB(Exploit 发布)
为什么要贡献?
- 提升知名度(GitHub star 多找工作加分)
- 学习项目规范(PR 流程、代码审查)
- 社区反馈(别人用你的代码 -> 你改进)
五、职业路径
实习生(0-6 个月)
├── 技能:OWASP Top 10、基础工具
├── 薪资:国内 2k-5k / 月
└── 岗位:安全运营 / SOC 分析员
初级渗透测试工程师(6-18 个月)
├── 技能:Nmap + Burp + SQLMap、独立 Web 渗透
├── 薪资:国内 8k-18k / 月
└── 岗位:红队 / 渗透测试 / 安全研究员
└── 目标:稳定赏金、OSCP
中级安全研究员(18-36 个月)
├── 技能:1-2 个专精方向
├── 薪资:国内 18k-40k / 月
└── 岗位:高级渗透 / SRD 研究员 / 红队 Leader
└── 目标:挖到 CVE、发表过演讲
高级安全研究员(36+ 个月)
├── 技能:领域专家、带团队、有 CVE 0day
├── 薪资:国内 40k-100k / 月
└── 岗位:安全总监 / CISO / Vulnerability Researcher
└── 目标:国际会议演讲、顶级 CVE
国内外安全公司 TOP:
国内:360、腾讯安全、阿里安全、字节安全、盘古实验室、长亭、奇安信、天融信、绿盟、启明
海外:Google Security、Microsoft Security、Project Zero、FireEye/Mandiant、CrowdStrike、Palo Alto、Bugcrowd/HackerOne、Rapid7
六、靶场总清单
Web 渗透靶场:
✅ PortSwigger Web Security Academy(首选入门)
✅ DVWA(基础漏洞)
✅ SQLi-Labs(SQL 注入专项)
✅ Pikachu(中文友好)
✅ Buuoj(国内 Web CTF)
✅ CTFHub(综合)
✅ 攻防世界 XCTF
✅ Hack The Box Starting Point
✅ OWASP Juice Shop(Java Web 全栈)
✅ DVNA(Node.js Web)
✅ Hacker101(HackerOne 练手)
通用靶场:
✅ Hack The Box(最流行的渗透测试平台)
✅ TryHackMe(类似 HTB,入门更友好)
✅ VulnHub(可下载虚拟机)
✅ Vulhub(Docker 一键起)
✅ PicoCTF(CTF 入门)
✅ CTFtime(全球赛事日历)
Bug Bounty 专用:
✅ HackerOne(最大社区)
✅ Bugcrowd(众包)
✅ 补天(国内)
✅ 阿里 SRC / 腾讯 SRC / 字节 SRC
进阶靶场:
✅ Red Team Operator(RTO / RTOv2)
✅ Active Directory Attack & Defense
✅ Blue Team Labs Online(蓝队)
✅ AttackIQ / XM Cyber(红队仿真)
逆向 / Pwn:
✅ CTFtime Pwn / Reverse 类别
✅ CrackMe.one
✅ Hack The Box 逆向题
✅ ROP Emporium
七、每日学习习惯
安全研究者的一天:
1. 早上 30 分钟:逛博客和情报源
- freebuf.com、sec-wiki.com、先知社区
- Twitter 关注 @x0rz @BleepinComputer @HackInTheBox
- Feedly 订阅安全 RSS
2. 上午工作 / 下午学习
- 做渗透测试项目 / 写 Exploit / 挖漏洞
3. 晚上 1-2 小时:练靶场 / CTF
- 保持手速和新漏洞敏感度
4. 周末 3-4 小时:深度研究
- 看 Log4j 源码、写 Exploit、整理分析博客
关键习惯:
- 写博客:每周至少一篇
- 记笔记:Notion / Obsidian
- 复盘:做完项目后写总结
- 保持好奇心:遇到"为什么这样"就去研究
- 别焦虑:安全行业太大了,先专精一个方向
八、总结
Web 安全不是一门"课程",是一项"运动"——你不能只读书不做练习。
给你的路线图:
3 个月:Python + 网络基础 + PortSwigger Academy 前 50 关
6 个月:DVWA + SQLi-labs + Hack The Box Starting Point
1 年 :Burp Pro 精通 + 能跑通一个完整渗透流程
18 个月:稳定 SRC 赏金 + OSCP
2 年 :挖到 CVE + 参与过 CTF 比赛
3 年 :有专精方向 + 能在 FreeBuf / 先知发表文章
安全行业最大的好处:
只要你持续学习,永远有新东西可以研究,永远不缺工作。
九、推荐资源
- PortSwigger Academy: https://portswigger.net/web-security
- CTFtime: https://ctftime.org/
- Hack The Box: https://www.hackthebox.com/
- FreeBuf: https://www.freebuf.com/
- 先知社区: https://xz.aliyun.com/
- The Hacker Playbook 系列
- 《Web 安全深度剖析》
- 《白帽子讲 Web 安全》
- 《The Web Application Hacker's Handbook》