这篇不是靶场闯关记录,是我做过几个授权项目之后沉淀下来的做事顺序——真实世界里渗透是有甲方、有边界、有交付物的工程活动。
为什么先讲流程
靶场里拿到一个页面就能上手测,但真实项目完全不是这样。我自己的教训是:不懂流程就开测,轻则返工,重则越界。流程感是业余和职业的分水岭。
七阶段流程
1. 前期交互(签合同定规矩)
- 书面授权:范围(域名/IP/系统清单)、时间窗、禁止行为(DoS、拖库、社会工程)。
- 应急联系人:测出问题(比如服务异常)能第一时间联系到对方运维。
- 一句话:没有授权书,一个包都不发。
2. 信息收集(占工作量 50% 以上)
- 被动收集:ICP 备案、证书透明度(crt.sh)、Google 语法,全程不触达目标。
- 主动收集:Nmap 扫端口、subfinder 爆子域、御剑/Dirsearch 扫目录、whatweb 认指纹。
- 我的体会:信息收集做得有多细,后面漏洞就有多好挖——我第一个漏洞就是在翻资产时顺手发现的。
3. 威胁建模
- 把收集到的资产按价值排序:登录入口 > 管理后台 > API > 静态页面。
- 识别技术栈(框架/中间件/CMS),映射到已知漏洞模式——看到 JeecgBoot 想 jmreport,看到 ThinkPHP 想反序列化。
4. 漏洞探测与验证
- 扫描器结果必须手工复验——AWVS/Xray 输出不算发现,复现了才算。
- 每个疑似漏洞回答三个问题:能复现吗?能拿到什么?影响面多大?
5. 漏洞利用(无害验证原则)
- 证明存在即可,不碰真实数据:SQL 注入只读到
version(),文件读取只读hostname,上传只传打印时间的探针。 - 截图、请求包、时间戳全部留证——笔记就是法律保护。
6. 权限提升与横向(仅限授权范围覆盖时)
- 拿到立足点后:提权(内核漏洞/错误配置)→ 凭据获取 → 横向移动。
- 真实项目里这一步要先翻授权书确认范围覆盖,不覆盖就不动。
7. 报告与复盘
- 每个发现:复现步骤 + 证据 + 业务影响 + 修复建议。
- 按严重程度分级,写执行摘要给非技术人员看。
- 交付后跟踪修复,复测确认闭环。
靶场思维 vs 真实思维
| 靶场 | 真实项目 |
|---|---|
| 拿到 shell 就是胜利 | 证明风险才是目的 |
| 随便打 | 授权边界就是法律边界 |
| 没人看你的过程 | 每一步都要可审计 |
| 通关就结束 | 修复闭环才算完 |
心得
流程看起来慢,但每一步都在为后面省时间:授权挡法律风险,信息收集决定漏洞产出,无害验证保护自己也保护甲方,报告质量决定工作值多少钱。这套顺序我现在每次开工前都会过一遍。