首页/安全/漏洞与攻击面速查/whatweb 指纹识别的正确用法
扫描与验证方法50 条

whatweb 指纹识别的正确用法

指纹识别输出的是线索:框架、组件与版本提示,需要与响应头、页面特征交叉验证;识别到框架不等于存在漏洞。

漏洞与攻击面速查安全更新于 2026-10-13

指纹识别输出的是线索

whatweb 通过页面特征、响应头、cookie 名、favicon 哈希等信息识别 Web 技术栈与版本。它给出的是线索而不是结论:识别到某个框架不代表存在漏洞,版本号可能是伪造或被刻意隐藏的。适用任何可访问的 HTTP/HTTPS 目标(本方资产与授权范围内目标)。

基本信息

用途Web 技术栈与组件版本识别
攻击性级别-a 1(隐蔽,默认)到 -a 4(激进)
输出控制台文本、JSON、简要日志
批量方式-i 读取 URL 列表
结果定位线索,需人工交叉验证

典型使用场景

  • 资产梳理:整理内部站点的技术栈,为漏洞影响面分析提供输入
  • 版本核查:确认某组件是否为受漏洞影响的版本区间
  • 变更检测:同一站点再次扫描,发现技术栈变化
  • 批量识别:对站点清单统一跑一遍,形成技术栈台账
  • 交叉验证:与响应头、错误页特征、favicon 哈希相互印证

常用命令

常用命令
whatweb -a 3 https://example.com                     # 逐级提高识别强度
whatweb --log-json=whatweb.json -a 1 https://example.com
whatweb -i urls.txt --log-brief=out.txt               # 批量识别站点清单
whatweb -a 4 https://example.com --user-agent 'Mozilla/5.0'   # 激进模式会明显增加请求量
# 交叉验证:curl -sI 目标 | grep -iE 'server|x-powered-by'

攻击性级别与影响

级别行为适用场景
1仅读取首页,最隐蔽批量盘点,对生产影响最小
2增加部分路径请求常规识别
3更主动的插件探测授权范围内的单站深入识别
4激进,请求量明显增大测试环境或明确授权的目标
版本号被刻意隐藏或伪造时,指纹只是弱信号:对关键系统应以人工确认为准,尤其是把识别结果直接用于判断是否存在某 CVE 的场景。
指纹结果要记录扫描时间与识别级别:技术栈会随升级变化,台账里没有时间戳的指纹信息半年后就无法解释差异从何而来。

交叉验证手段

  • 响应头:Server 与 X-Powered-By 等字段
  • 页面特征:静态资源路径、编译产物命名、报错页样式
  • favicon 哈希:同一产品不同实例常可复用
  • Cookie 名称与格式:框架的会话名往往有固定前缀

易错点

  • 以指纹识别的版本直接判定存在某 CVE,未做任何人工确认
  • 用 -a 4 对生产站点批量扫描:请求量激增,可能影响业务
  • 只看识别结果不看请求响应:插件名相同但配置与版本不同,结论会错
  • 指纹台账不记时间:升级后再对比,无法判断变化原因

数据来源与参考

  • whatweb 官方文档(Aggression 级别与插件)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌