📚 网络安全 Kali 学习系列
模块 0 基础阶段 ✅ 已完成
01-18 Linux系统 → 计算机网络 → 密码学 → Python/Bash/PHP/JS → Docker
模块 1 信息收集与侦察(攻击技术阶段)
✓ 19 nmap 主动扫描与信息收集
✓ 20 masscan 高速扫描与被动侦察
✓ 21 指纹识别与目录爆破
22 漏洞扫描与 Web 安全基础(当前篇)
模块 2-4 共 XX 篇,后续持续更新
漏洞扫描与 Web 安全基础
从 Nikto 到 OWASP Top 10:完成从"发现目标"到"发现漏洞"的关键一跳
读完本篇你将能:使用 Nikto 2.6.1 对 Web 服务器进行安全配置审计,理解 Nessus 10.12.4 的漏洞扫描流程,掌握 Nuclei 3.11.1 的模板化扫描方法,熟记 OWASP Top 10 2025 的十大风险类别,并能够将多种扫描工具组合成自动化侦察工作流。
难度:进阶 | 前置知识:nmap 端口扫描、指纹识别、目录爆破
📑 本文目录
01漏洞扫描概述:从信息收集到漏洞发现
02Nikto 2.6.1:Web 服务器安全审计
03Nessus 10.12.4:专业漏洞扫描平台
04Nuclei 3.11.1:模板化漏洞扫描
05OWASP Top 10 2025:十大 Web 安全风险
06实战工作流:从扫描到报告
07道德与法律边界
一、漏洞扫描概述:从信息收集到漏洞发现
前三篇文章完成了信息收集的三层递进:nmap 回答"目标开了哪些端口",masscan 回答"全网哪些 IP 存活",指纹识别和目录爆破回答"目标用了什么技术栈、有哪些隐藏路径"。但侦察的终点不是信息列表——而是漏洞。漏洞扫描器就是连接"知道目标长什么样"和"知道目标哪里薄弱"的桥梁。
1.1 漏洞扫描的三种类型
漏洞扫描不是"一个工具扫一切"。根据扫描位置和深度,分为三种截然不同的类型:
| 类型 |
扫描位置 |
原理 |
代表工具 |
| 网络漏洞扫描 |
外部(远程) |
向目标发送构造的数据包,根据响应判断是否存在已知漏洞 |
Nessus、Nuclei |
| Web 应用扫描 |
外部(HTTP 层) |
发送恶意 HTTP 请求,检查响应中是否有漏洞特征 |
Nikto、Burp Suite |
| 主机基线扫描 |
内部(本地) |
在目标主机上执行,检查配置文件、补丁状态、注册表 |
Lynis、CIS-CAT |
本篇聚焦前两种——网络漏洞扫描和 Web 应用扫描。主机基线扫描属于防御方向,在后续防御模块讲解。
1.2 漏洞扫描的核心逻辑:指纹匹配
所有漏洞扫描器的核心逻辑都是同一个模式:发送探测包 → 对比响应与已知漏洞特征库 → 命中则报告漏洞。这和上一篇学过的指纹识别原理一脉相承——指纹识别对比的是"技术栈特征库",漏洞扫描对比的是"漏洞特征库"。
理解了这个模式,就能明白不同工具的差异本质上是特征库和探测方式的差异:Nikto 的特征库是 Web 服务器配置缺陷规则集,Nessus 的特征库是数万条 CVE 插件,Nuclei 的特征库是社区维护的 YAML 模板。
💡 小贴士
漏洞扫描和渗透测试是不同概念。扫描器只能发现已知漏洞(特征库中收录的),无法发现逻辑漏洞、业务漏洞等需要人工推理的漏洞。OWASP Top 10 中的"越权访问"和"逻辑漏洞"几乎无法被自动化扫描器发现,必须依靠人工渗透测试。扫描是"广度优先",渗透是"深度优先"。
1.3 MITRE ATT&CK 映射
漏洞扫描在 MITRE ATT&CK 框架中映射为 T1595.002 Active Scanning - Vulnerability Scanning,属于侦察战术(TA0043)下的子技术。与 nmap 的 T1595.001(Scanning IP Blocks)和 masscan 的 T1595(Active Scanning)属同一战术族。
二、Nikto 2.6.1:Web 服务器安全审计
上一篇用 WhatWeb 识别了目标的技术栈——"这台服务器跑的是 Apache 2.4.58 + PHP 8.3"。知道了技术栈之后,下一步自然是"这些组件有没有已知漏洞?"Nikto 就是回答这个问题的工具。
Nikto 是一个用 Perl 编写的开源 Web 服务器安全扫描器,当前版本 2.6.1(2026 年 7 月 31 日发布)。它不像 Nessus 那样扫描系统级漏洞,而是专注于 Web 层面的配置缺陷:危险的 CGI 脚本、过时的软件版本、默认的备份文件、暴露的管理后台、缺失的安全头。
2.1 基本使用
Nikto 在 Kali 中已预装。最简单的用法只需一个参数——目标 URL:
Shell
# 基础扫描:指定目标 URL
nikto -h http://192.168.1.100
# 指定端口(非标准端口)
nikto -h http://192.168.1.100 -port 8080,8443
# 使用 HTTPS(跳过证书验证)
nikto -h https://192.168.1.100 -ssl
执行后 Nikto 会开始逐项检查,输出实时滚动。一次完整扫描大约 30 秒到 5 分钟(取决于目标响应速度和检测项数量)。
2.2 关键参数
Nikto 2.6.x 引入了更快的扫描引擎和改进的报告格式。以下参数在实际使用中最常用:
Shell
|
1
2
3
4
5
6
7
8
9
10
11
|
# -Tuning:调优扫描级别(1-9,数字越大越激进)
nikto -h http://192.168.1.100 -Tuning 1x8 # 启用1(上传)+8(命令执行)
# -Format + -output:输出报告到文件
nikto -h http://192.168.1.100 -Format json -output scan_result.json
# -mutate:变异测试(尝试更多路径组合)
nikto -h http://192.168.1.100 -mutate 23 # 测试目录遍历+文件名猜测
# -useragent:自定义 UA(绕过简单 WAF)
nikto -h http://192.168.1.100 -useragent "Mozilla/5.0 (Windows NT 10.0)"
|
-Tuning 参数是 Nikto 的核心调优选项。数字含义:1=上传漏洞、2=显示文件、3=信息泄露、4=Cross-Site Scripting、5=远程检索、6=DoS、7=其他、8=命令执行、9=SQL 注入。默认不启用 6(DoS)和 9(SQL 注入)——因为这两类测试可能对目标造成实际影响。加上 x 前缀表示"排除",如 x6 表示排除 DoS 测试。
2.3 真实扫描输出解读
对一台运行 Apache 2.4.58 + PHP 8.3 的靶机执行标准扫描,输出示例如下:
Nikto Output
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
- Nikto v2.6.1
+ Target IP: 192.168.1.100
+ Target Hostname: 192.168.1.100
+ Target Port: 80
+ Start Time: 2026-09-08 14:23:01
+ Server: Apache/2.4.58 (Debian)
+ The X-Frame-Options header is not set.
+ /admin/ - Directory found (HTTP 200)
+ /backup.zip - Backup file found (HTTP 200)
+ /phpinfo.php - PHP info page found (HTTP 200)
+ Apache mod_negotiation enabled - filename brute force possible
+ End Time: 2026-09-08 14:25:33 (139 seconds)
|
逐行解读这些发现:
•
X-Frame-Options 未设置:目标可以被 iframe 嵌套,存在 Clickjacking 风险。攻击者可以用透明 iframe 覆盖在恶意页面上,诱骗用户点击
•
/admin/ 目录可访问:管理后台暴露在公网,应限制 IP 白名单或添加认证
•
/backup.zip 可下载:备份文件泄露源码和配置,这是渗透测试中最有价值的发现之一——源码泄露后可以直接做代码审计
•
/phpinfo.php 暴露:PHP 信息页面泄露服务器配置(PHP 版本、模块、路径),攻击者据此选择利用方式
•
mod_negotiation 启用:Apache 内容协商功能允许通过 URL 后缀猜测文件名,可做进一步枚举
⚠️ 常见错误
nikto -h example.com — 扫描不属于你的域名,即使只是"测试"也是违法行为
✓ 正确:nikto -h 192.168.1.100 — 扫描本地靶机或授权测试环境
💡 小贴士
Nikto 2.6.0 引入了新的 JSON/XML 输出格式(与旧版不兼容),如果你的自动化脚本依赖解析 Nikto 输出,升级后需要适配新的 schema。2.6.1 新增了 SQL Direct Reporting 功能——扫描结果可以直接写入数据库,无需中间转换。命令:nikto -h http://target -Format sql -output "db:host=localhost;user=scanner;password=xxx;db=scan_results"
三、Nessus 10.12.4:专业漏洞扫描平台
Nikto 专注于 Web 配置审计,但如果你需要扫描整个网络——操作系统漏洞、数据库服务漏洞、网络设备漏洞——Nessus 才是工业级工具。Nessus 当前版本 10.12.4(2026 年 8 月 19 日发布),拥有超过 33 万个漏洞检测插件,是全球企业使用最广泛的漏洞扫描器。
3.1 Nessus vs Nikto 定位对比
| 维度 |
Nikto |
Nessus |
| 扫描范围 |
Web 服务器配置层 |
全栈(OS + 服务 + Web) |
| 检测项数量 |
约 6,700 项 |
33 万+ 插件 |
| CVE 覆盖 |
有限(Web 类 CVE) |
全面覆盖 NVD 数据库 |
| 授权方式 |
完全开源免费 |
家庭版免费(16 IP),专业版付费 |
| 扫描速度 |
快(分钟级) |
慢(视目标规模,10 分钟-数小时) |
简单记忆:Nikto 是"Web 配置体检",Nessus 是"全身 CT 扫描"。实战中两者互补——先 Nikto 快速扫一遍 Web 层,再 Nessus 深度扫一遍系统层。
3.2 安装与初始化
Nessus 不在 Kali 默认安装中,需要从 Tenable 官网下载 Debian 安装包。家庭版(Nessus Essentials)免费,最多扫描 16 个 IP,足够学习使用。
Shell
|
1
2
3
4
5
6
7
8
|
# 1. 下载安装包(从 Tenable 官网获取 deb)
dpkg -i Nessus-10.12.4-debian10_amd64.deb
# 2. 启动 Nessus 服务
systemctl start nessusd
# 3. 浏览器访问 https://kali:8834 完成初始化
# 初始化过程需 5-15 分钟(编译插件)
|
初始化时选择"Nessus Essentials"(免费版),输入注册码后 Nessus 会下载并编译全部插件。这个过程不可跳过——插件编译完成后才能开始扫描。
3.3 扫描策略选择
Nessus 提供多种预置扫描策略,初学者常困惑"该选哪个"。以下是学习阶段最常用的三种:
•
Basic Network Scan:基线扫描,适合首次接触目标。检查常见服务漏洞、默认密码、过期 SSL 证书。扫描速度较快,不会对目标造成影响
•
Advanced Scan:深度扫描,可自定义插件集。适合对已知目标做详细审计,扫描时间长但覆盖全面
•
Web Application Tests:Web 应用专项扫描,检测 OWASP Top 10 类漏洞。与 Nikto 互补——Nessus 侧重 CVE 检测,Nikto 侧重配置审计
3.4 漏洞严重等级
Nessus 使用 CVSS(通用漏洞评分系统)对漏洞分级。理解等级含义是解读报告的前提:
| 等级 |
CVSS 分数 |
含义 |
行动 |
| Critical |
9.0-10.0 |
远程代码执行,无需认证 |
立即修复 |
| High |
7.0-8.9 |
提权、数据泄露 |
优先修复 |
| Medium |
4.0-6.9 |
信息泄露、配置缺陷 |
计划修复 |
| Low |
0.1-3.9 |
轻微信息泄露 |
按需处理 |
💡 小贴士
Nessus 插件编号是连续递增的整数——你在扫描报告中看到的 Plugin ID 如 335455 对应一个具体的 CVE 检测规则。在 Tenable 官网搜索该 ID 可以看到漏洞详情、影响范围和修复方案。2026 年 8 月的插件编号已超过 33 万,说明漏洞库的更新速度远超任何手动学习的速度——这就是为什么自动化扫描不可替代。
四、Nuclei 3.11.1:模板化漏洞扫描
Nikto 和 Nessus 是传统漏洞扫描器的代表——特征库由官方维护,用户只能等更新。Nuclei 代表了新一代扫描器的思路:用 YAML 模板描述漏洞检测规则,任何人都能编写和分享模板。这种模式让 Nuclei 的模板库以惊人的速度增长——截至 2026 年 9 月,社区模板已覆盖超过 9000 个 CVE。
Nuclei 当前版本 3.11.1(Kali 仓库 2026 年 8 月 25 日更新),用 Go 语言编写,天然支持高并发。与 Nikto 的 Perl 实现相比,Nuclei 的扫描速度快一个数量级。
4.1 模板:漏洞的 YAML 描述
Nuclei 的核心概念是"模板"——一个 YAML 文件,描述了"发什么请求、匹配什么响应"。一个最简单的检测 XSS 的模板长这样:
xss-detect.yaml
|
1
2
3
4
5
6
7
8
9
10
|
id:
xss-reflected-test
http:
- method: GET
path:
- "{{BaseURL}}/search?q="
matchers:
- type: word
words: ["<script>alert(1)</script>"]
|
这个模板的逻辑:向目标 URL 的 /search?q= 参数注入 XSS payload,如果响应体中包含未过滤的 payload 字符串,说明存在反射型 XSS。模板的 YAML 结构让检测逻辑一目了然——这是 Nuclei 能快速社区化的关键。
4.2 基本使用
Nuclei 在 Kali 中已预装。首次使用前需要更新模板库:
Shell
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 1. 更新模板库(首次必做)
nuclei -ut
# 2. 基础扫描:对单个目标运行全部模板
nuclei -u http://192.168.1.100
# 3. 只运行特定严重等级的模板
nuclei -u http://192.168.1.100 -severity critical,high
# 4. 只运行特定标签的模板(如 CVE)
nuclei -u http://192.168.1.100 -tags cve,tech
# 5. 批量扫描(从文件读取目标列表)
nuclei -l targets.txt -o results.txt
|
-severity 参数是最实用的过滤选项——生产环境扫描时通常只关注 critical 和 high,避免被大量 low 级别的信息噪音淹没。-tags 参数可以按漏洞分类筛选,如 cve 只跑 CVE 检测,tech 只做技术栈指纹识别。
4.3 三种扫描器定位总结
| 工具 |
语言 |
定位 |
优势 |
| Nikto |
Perl |
Web 配置审计 |
轻量、开箱即用 |
| Nessus |
C/NessusASL |
全栈漏洞扫描 |
33 万插件、企业级报告 |
| Nuclei |
Go |
模板化漏洞扫描 |
高并发、社区模板、可自定义 |
💡 小贴士
Nuclei 模板库(nuclei-templates)每月发布 2 次版本更新,2026 年 4 月的 v10.4.2 版一次性新增了 121 个模板和 61 个 CVE 检测。模板覆盖了 CISA KEV(已知被利用漏洞)目录中的高危漏洞,以及新兴的 AI/LLM 攻击面。用 nuclei -ut 保持模板最新是扫描效果的前提——过时的模板等于过时的检测能力。
五、OWASP Top 10 2025:十大 Web 安全风险
工具会找漏洞,但你得知道"什么样的漏洞值得找"。OWASP Top 10 是 Web 应用安全风险的全球共识——由开放式 Web 应用程序安全项目(OWASP)每 3-4 年发布一次,根据真实漏洞数据统计排名。2025 版是最新的正式发布版。
理解 OWASP Top 10 的价值不在于"背下来 10 个名字",而在于建立风险分类思维——看到一个漏洞时能迅速归类"这属于哪一类风险、哪类工具能发现它、后续渗透该怎么做"。
5.1 2025 版完整列表
| 编号 |
风险类别 |
变化 |
可否自动化扫描 |
| A01 |
访问控制失效 |
保持第1位 |
部分(IDOR 需人工) |
| A02 |
安全配置错误 |
保持第2位 |
✓ Nikto 擅长 |
| A03 |
软件供应链失效 |
新增(原 A08 升级) |
✓ SCA 工具 |
| A04 |
加密失效 |
保持第4位 |
✓ SSL Labs 等 |
| A05 |
注入 |
从第3降至第5 |
✓ sqlmap/Nuclei |
| A06 |
不安全设计 |
从第4降至第6 |
✗ 需人工审计 |
| A07 |
身份认证失效 |
保持第7位 |
部分(爆破可检测) |
| A08 |
软件与数据完整性失效 |
保持第8位 |
✗ 需代码审计 |
| A09 |
安全日志与告警失效 |
保持第9位 |
✗ 需运维审计 |
| A10 |
异常条件处理不当 |
新增 |
✗ 需人工测试 |
5.2 关键变化解读
2025 版相比 2021 版有两个重要变化值得关注:
•
A03 软件供应链失效首次进入前三:Log4Shell 事件后,第三方组件的漏洞成为攻击主流。你的代码可能很安全,但你依赖的开源库可能藏着一个后门。这正是 Nuclei 模板库快速覆盖 CVE 的原因——每一个新 CVE 都可能被供应链攻击利用
•
A05 注入从第 3 降至第 5:这并非因为注入变少了,而是因为参数化查询的普及让 SQL 注入的比例在下降。但 XSS 仍然属于注入大类,且仍是测试最多、关联 CVE 数量最多的类别之一。sqlmap 和 Nuclei 仍是注入检测的主力工具
•
A10 异常条件处理不当是全新类别:关注的是程序在异常状态下(内存不足、磁盘满、网络中断)的行为——很多系统在异常路径上暴露了不该暴露的信息或权限。这类漏洞几乎无法被自动化扫描器发现,需要人工构造异常场景测试
💡 小贴士
OWASP Top 10 的"自动化可检测性"列揭示了一个残酷现实:排名第 1 的"访问控制失效"几乎无法被扫描器发现,排名第 6 的"不安全设计"和排名第 10 的"异常条件处理"同样依赖人工。扫描器能高效发现的 A02(配置错误)、A04(加密失效)、A05(注入)反而排名靠后。这意味着:工具不是万能的,人脑不可替代——扫描找"已知漏洞",人工找"逻辑漏洞",两者缺一不可。
六、实战工作流:从扫描到报告
前面三章分别学了 Nikto、Nessus、Nuclei 三款扫描器。实战中不会只用一个——而是将它们组合成流水线,各取所长。以下是一个完整的漏洞扫描工作流,从目标输入到结构化报告输出。
6.1 四阶段流水线设计
①
端口与服务发现:nmap 扫描确认开放端口和服务版本,输出可作为后续工具的输入
②
Web 配置审计:Nikto 快速扫描 HTTP 服务,发现配置缺陷和暴露文件
③
CVE 漏洞扫描:Nuclei 对发现的 Web 服务运行 CVE 模板,Nessus 对非 Web 服务做系统级扫描
④
结果整合与报告:去重、按 CVSS 排序、生成结构化报告
6.2 自动化扫描脚本
将四阶段串联成自动化脚本,避免手动逐个执行。以下脚本接收一个目标 IP,依次运行 Nikto 和 Nuclei,将结果合并为 JSON 报告:
vuln_scan.py
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#!/usr/bin/env python3
"""漏洞扫描自动化脚本 - 整合 Nikto + Nuclei"""
import subprocess
import json
import os
import sys
from datetime import datetime
def run_nikto(target):
"""运行 Nikto 扫描并返回 JSON 结果"""
output_file = f"/tmp/nikto_{target.replace('.', '_')}.json"
cmd = [
"nikto", "-h", f"http://{target}",
"-Format", "json", "-output", output_file
]
subprocess.run(cmd, capture_output=True)
with open(output_file) as f:
return json.load(f)
def run_nuclei(target):
"""运行 Nuclei 扫描并返回结果列表"""
output_file = f"/tmp/nuclei_{target.replace('.', '_')}.txt"
cmd = [
"nuclei", "-u", f"http://{target}",
"-severity", "critical,high,medium",
"-o", output_file, "-json"
]
subprocess.run(cmd, capture_output=True)
results = []
if os.path.exists(output_file):
with open(output_file) as f:
for line in f:
if line.strip():
results.append(json.loads(line))
return results
if __name__ == "__main__":
target = sys.argv[1] if len(sys.argv) > 1 else "192.168.1.100"
report = {
"target": target,
"scan_time": datetime.now().isoformat(),
"nikto": run_nikto(target),
"nuclei": run_nuclei(target)
}
print(json.dumps(report, indent=2, ensure_ascii=False))
|
6.3 报告解读与优先级排序
扫描完成后,面对几十甚至上百条漏洞,如何排优先级?三条原则:
•
CVSS 分数 + 利用难度:一个 CVSS 9.8 但需要认证的漏洞,优先级低于 CVSS 7.5 但无需认证的漏洞。看分数的同时要看"攻击复杂度"
•
资产价值:面向公网的核心业务服务器 > 内网开发服务器 > 测试环境。同样级别的漏洞,在高价值资产上优先修复
•
去重与关联:Nikto 和 Nuclei 可能报告同一个 CVE,需要按 CVE 编号去重。同一个根因(如 PHP 版本过旧)可能导致多个漏洞,修一个根因解决多个问题
⚠️ 常见错误
扫到漏洞就立即利用 — 扫描结果是"疑似漏洞",Nikto 和 Nuclei 都有误报率,未经人工验证的漏洞报告不能直接用于修复决策
✓ 正确:对 critical/high 级别漏洞逐条手动验证——用 curl 复现 HTTP 请求、检查响应确认漏洞存在,再写入修复工单
💡 小贴士
自动化脚本的输出不要直接作为"漏洞清单"提交。正确流程是:脚本输出 → 人工去重 → 逐条验证 → 确认漏洞 → 按优先级排序 → 生成最终报告。这个流程和真实渗透测试公司的工作方式一致——扫描器负责"广撒网",人工负责"捞鱼"。
七、道德与法律边界
漏洞扫描工具的威力越大,使用边界就越重要。本篇涉及的 Nikto、Nessus、Nuclei 都是主动扫描工具——它们会向目标发送大量探测请求,即使不造成损害,行为本身也受法律约束。
7.1 法律红线
| 行为 |
法律性质 |
依据 |
| 扫描未授权目标 |
违法(即使未入侵) |
网络安全法第27条 |
| 扫描已授权目标 |
合法 |
书面授权 + 范围约定 |
| 扫描自有资产 |
合法 |
所有权即授权 |
| 公开漏洞利用 |
视目标授权而定 |
刑法285/286条 |
7.2 授权测试环境
本系列所有实操练习都在自建靶机上完成。以下是推荐的安全练习环境:
•
DVWA:Damn Vulnerable Web Application,PHP 编写的靶机,包含 SQL 注入、XSS、文件上传等漏洞。Docker 一键部署:docker run -d -p 80:80 vulnerable/web-dvwa
•
Vulhub:基于 Docker-Compose 的漏洞环境集合,覆盖 Log4Shell、Struts2、Spring 等知名漏洞。每个环境都有复现文档
•
Metasploitable 2:Ubuntu 虚拟机镜像,预装了大量含漏洞服务(vsftpd 后门、Samba 远程执行、Tomcat 弱口令),适合 Nessus 全栈扫描练习
7.3 负责任披露原则
如果在扫描中意外发现了他人系统的漏洞(例如公网扫描时发现某网站暴露了 phpinfo),正确的做法是负责任披露:
•
通过厂商的 SRC(安全应急响应中心)提交漏洞,如腾讯 SRC、阿里 SRC
•
不在公开渠道(社交媒体、博客)公开未修复漏洞的详情
•
给予厂商合理的修复时间(通常 90 天),到期后可选择公开
•
绝不利用发现的漏洞获取未授权数据或权限
💡 小贴士
很多企业有漏洞赏金计划(Bug Bounty),通过 SRC 提交有效漏洞可以获得现金奖励。这比"自由发挥"安全得多——合法授权 + 赏金回报,是白帽黑客的正道。国内 SRC 平台如补天、漏洞银行等,聚合了大量企业的漏洞提交渠道。
分级练习
以下练习按难度分为三级,建议在自建 DVWA 或 Metasploitable 2 靶机上完成。
Level 1:基础 — Nikto 扫描 DVWA
•
用 Docker 部署 DVWA:docker run -d -p 8080:80 vulnerable/web-dvwa
•
用 Nikto 扫描 http://localhost:8080,记录所有发现
•
将结果输出为 JSON 格式,统计发现的安全问题数量
•
对照 OWASP Top 10,将每个发现归类到对应的风险类别
Level 2:进阶 — Nuclei CVE 扫描与报告
•
部署 Metasploitable 2 虚拟机(或用 Vulhub 中的任意漏洞环境)
•
运行 nuclei -u http://靶机IP -severity critical,high -o results.txt
•
逐条分析扫描结果,记录每个漏洞的 CVE 编号、CVSS 分数、利用条件
•
手动验证至少 2 个漏洞(用 curl 或浏览器复现),确认是否为误报
Level 3:挑战 — 编写自定义 Nuclei 模板
•
在 DVWA 中找到一个已知漏洞(如反射型 XSS)
•
编写一个 Nuclei YAML 模板,检测该漏洞的特定 payload 和匹配规则
•
用 nuclei -u http://靶机IP -t your_template.yaml 运行自定义模板
•
将本篇的 vuln_scan.py 脚本扩展为支持三工具并行扫描的版本
🏷 知识回顾
漏洞扫描三类型
指纹匹配逻辑
Nikto 2.6.1
-Tuning 调优
Nessus 10.12.4
CVSS 分级
Nuclei 3.11.1
YAML 模板
OWASP Top 10 2025
A03 供应链失效
T1595.002
四阶段流水线
负责任披露
下一篇预告
模块 1 信息收集与侦察至此完成——从 nmap 端口发现、masscan 高速扫描、指纹识别与目录爆破,到本篇的漏洞扫描,侦察阶段的能力链已建立完整。下一篇进入模块 2:Web 应用攻击,从最经典的注入攻击开始——sqlmap 自动化注入与 Burp Suite 抓包改包,将扫描发现的漏洞推进到实际利用阶段。从"知道哪里有问题"到"证明问题有多严重",这是渗透测试最核心的跨越。