入门
基于 OWASP ZAP 官方文档(zaproxy.org/docs)+ PortSwigger Burp Suite 文档(portswigger.net/burp/documentation)+ Nmap Network Scanning(nmap.org/book)+ Tenable Nessus 文档(docs.tenable.com/Nessus.htm)+ OWASP DevSecOps Guideline 编写,对照 ZAP 2.x / Burp 2024+ / Nessus 10.x / Nmap 7.x
速查
- 四大工具分工:ZAP / Burp 看 Web 应用层(HTTP / WebSocket,OWASP Top 10 类);Nessus / Nmap 看 主机与网络层(端口 / 服务 / 补丁 / 配置)
- ZAP 主动 vs 被动:主动扫描会发新请求与攻击载荷(破坏性,仅自有环境);被动扫描只观察经代理流量不发新请求(零影响,可高频跑 CI)
- ZAP 官方警告:「You should NOT use it on web applications that you do not own」——主动扫描本质是攻击行为
- ZAP Docker 三模式:Baseline(spider + 被动,无攻击载荷,CI/PR 门禁)/ Full(含主动攻击)/ API Scan(按 OpenAPI/SOAP/GraphQL 定义);Automation Framework(YAML 驱动)是现代推荐方案
- ZAP 被动扫描热门 Alert ID:X-Frame-Options=10020、X-Content-Type-Options=10021、HSTS=10035、CSP 缺失=10038、CSP 分析=10055、Cookie HttpOnly=10010、Cookie Secure=10011、Cookie SameSite=10054、混合内容=10040、CORS=10098
- Burp Intruder 四攻击类型:Sniper(1 集,轮流)/ Battering Ram(1 集,同值)/ Pitchfork(≤20 集,并行)/ Cluster Bomb(≤20 集,全组合);Community 限速、Pro 全功能
- Burp Repeater:手动重放与修改单条 HTTP 请求,Community 与 Professional 均可用,是渗透验证主力
- Nmap 默认 -sS:SYN 半开扫描(需 root,快且隐蔽,多数系统不记录);无 root 退到 -sT(全连接,被日志记录)
- Nmap 五端口状态:open / closed / filtered(防火墙阻断)/ unfiltered(ACK 无法定开/关)/ open|filtered(无法区分)
- Nessus 凭据扫描:通过 SSH(密码 / 密钥)或 Windows SMB(本地管理员)拿本地视角;plugin 21745 检测凭据失败;Windows 需本地管理员才能做 direct file analysis
- SAST/DAST/SCA 分工:SAST 白盒看源码(编码期,找自写代码缺陷);DAST 黑盒测运行时(注入载荷,找认证 / 注入 / 配置);SCA 扫依赖(识别已知 CVE 与许可证)
- 核心反模式:对生产或非自有系统跑主动扫描 / Cluster Bomb 当默认 / 无凭据扫描声称覆盖完整 / 期望主动扫描发现业务逻辑漏洞 / 只跑 SAST 不跑 SCA
这篇叶定位
「漏洞扫描」是主动发现已知弱点的工具体系,与「攻击方式」(讲攻击机制)和「OWASP 防御」(讲修复)形成三角:
- 四大工具:OWASP ZAP(Web 应用扫描)/ Burp Suite(Web 渗透代理)/ Nessus(主机漏洞扫描)/ Nmap(端口与服务侦察)
- 三类方法论:SAST(白盒看源码)/ DAST(黑盒测运行时)/ SCA(依赖扫描)
- 不展开:漏洞代码级修复(XSS / CSRF / SQLi 防御)、WAF / IDS 配置、移动端反编译、社会工程
漏洞扫描 ≠ 全部安全。它只发现已知模式的弱点——业务逻辑漏洞(如越权)、零日漏洞、设计级缺陷必须靠威胁建模与人工渗透测试补充。
四大工具速览
OWASP ZAP(Web 应用扫描)
OWASP 基金会主导、现由 Checkmarx 维护的 Web 应用安全扫描器,完全开源免费。
- 本地代理模式:浏览器流量 → ZAP 代理 → 目标站点,ZAP 在中间观察与修改
- 主动扫描(Active Scan):发实际攻击载荷(XSS / SQLi 测试向量),由 Scan Policy 决定运行哪些规则
- 被动扫描(Passive Scan):只观察经代理流量,不发新请求,零影响可常驻
- Docker 扫描:Baseline(被动 + spider 1 分钟)/ Full(含主动)/ API Scan(OpenAPI / SOAP / GraphQL)
- Automation Framework:YAML 驱动的现代编排,官方推荐取代旧 Docker 脚本
Burp Suite(Web 渗透测试代理)
PortSwigger 公司的 Web 渗透测试代理,是渗透测试人员的「瑞士军刀」。
- Proxy Intercept:浏览器 → Burp Proxy → 服务器;Intercept on 暂停、off 自动放行;Forward / Drop 控制每条请求
- Repeater:手动重放与修改单条 HTTP 请求,多标签并行,完整保留修改轨迹
- Intruder:四种攻击类型的批量请求工具(Sniper / Battering Ram / Pitchfork / Cluster Bomb)
- 版本差异:Community 免费(Intruder 限速、Repeater 可用);Professional 付费(含主动扫描、Burp Scanner、全部 Intruder)
- HTTPS 解密:需安装 Burp CA 证书到浏览器 / 系统
Nessus(主机与网络漏洞扫描)
Tenable 公司的主机漏洞扫描器,主要从外部或凭据视角评估系统补丁 / 配置 / 合规。
- 扫描模板:Basic Network Scan / Host Discovery / Web Application / Malware / Advanced Scan 等
- 凭据扫描(Credentialed Checks):通过 SSH(密码 / 密钥)或 Windows SMB(本地管理员)登录目标读取本地视角
- 无凭据扫描:仅依赖服务 banner 推断,Tenable 官方明确「may be inconclusive or incorrect」
- 插件体系:用 NASL(Nessus Attack Scripting Language)编写,按 family 分组,映射 CVE
- 产品线:Nessus Essentials(免费 5 IP)/ Expert / Professional / Manager
Nmap(端口扫描与服务指纹)
开源的端口扫描与网络发现工具,是资产侦察与漏洞验证的事实标准。
- 端口扫描标志:-sS(SYN,默认首选)/ -sT(全连接)/ -sU(UDP)/ -sN/-sF/-sX(NULL/FIN/Xmas 隐蔽)/ -sA(ACK,映射防火墙)
- 端口状态:open / closed / filtered / unfiltered / open|filtered
- 服务与 OS 识别:-sV(服务版本)/ -O(OS 指纹)/ -A(激进,等价 -sV -O --script + traceroute)
- NSE(Nmap Scripting Engine):--script 调用脚本,分类 default / safe / vuln / brute / exploit / auth / broadcast / version
DAST vs SAST vs SCA
OWASP DevSecOps Guideline 对三类测试的官方定义:
| 维度 | SAST(白盒) | DAST(黑盒) | SCA(依赖扫描) |
|---|---|---|---|
| 测试对象 | 源码 / 字节码 / 二进制 | 运行中的应用 | 第三方 / 开源依赖 |
| 访问需求 | 白盒(需源码) | 黑盒(只需 URL / 入口) | 锁文件(package-lock.json) |
| SDLC 阶段 | 编码期(IDE / pre-commit) | 测试 / 预发布期 | 提交期(CI) |
| 能发现 | 自写代码缺陷(SQL 拼接 / 硬编码密钥 / 危险 API) | 运行时漏洞(认证绕过 / 注入 / 配置错误) | 已知 CVE / 许可证冲突 |
| 看不到 | 运行时配置、依赖 CVE | 源码级缺陷、依赖 CVE | 业务逻辑漏洞 |
| 代表工具 | ESLint security / SonarQube | OWASP ZAP / Burp / Nessus | npm audit / Snyk / Dependabot |
核心理念:三者互补不可互替。SAST 守自写代码、DAST 验运行时、SCA 管依赖;只用一种会有系统性盲区。前端项目最高频踩的是 SCA 漏配——node_modules 嵌套深,已知 CVE 多集中在依赖里,漏配 SCA 等于放任供应链风险。
前端工程师的扫描工具组合
前端工程师重点掌握的三个工具:
- ZAP 被动扫描:本地开发时浏览器走 ZAP 代理,能持续发现 HTTP 安全头缺失、Cookie 标志缺失、混合内容、CORS 配置错误
- SCA(npm audit / Snyk / Dependabot):纳入 package-lock.json 提交后自动跑,是性价比最高的前端安全投入
- Burp Proxy / Repeater:手工验证可疑请求(如鉴权边界、参数注入点)
Nmap / Nessus 多由运维 / 安全团队主导,前端只需理解其输出与边界。