whatweb 指纹识别要点
whatweb 通过响应头字段、页面特征、静态资源路径与特定文件探测来识别 CMS、开发框架、中间件与服务器组件,是 Web 资产摸底阶段的常用工具。它的探测强度由 -a 参数控制,级别越高发出的请求越多:1 级最轻,3 级为常规,4 级会做更多主动尝试。指纹命中只说明存在特征,不等于存在漏洞,必须与组件清单、版本信息交叉验证后才能作为结论依据,否则会产生大量误报。
基本信息
| 探测等级 | -a 1 低噪音、3 常规、4 重探测 |
|---|---|
| 输出留档 | --log-json 结构化输出,--log-verbose 详细日志 |
| 批量方式 | -i 读取 URL 列表文件 |
| 复核要求 | 与响应头、静态资源特征交叉验证后再使用 |
典型使用场景
- 资产摸底:快速识别站点使用的 CMS 与框架,归类资产
- 组件清单核对:与技术台账比对确认是否有未登记组件
- 同源批量识别:对同一厂商的多个站点批量比对版本
- 整改复核:升级后确认组件版本是否已更新
- 外部站点初筛:低等级探测用于确定后续检查范围
- 指纹差异排查:同一应用的不同节点识别结果不一致时,往往说明版本或配置存在偏差
指纹示例
指纹示例
whatweb -a 3 https://example.com --log-json=whatweb.json
whatweb -a 1 https://example.com # 低负荷场景,只用被动特征
whatweb -i urls.txt -a 3 # 批量识别,结果需逐条复核
# 复核思路:把命中项与响应头、静态资源路径、版本信息对照后确认探测等级对比
| 等级 | 请求强度 | 适用场景 |
|---|---|---|
| 1 | 最低,主要看已有响应特征 | 生产站点与高敏感环境初步识别 |
| 3 | 常规,附加少量特征请求 | 多数评估场景的默认选择 |
| 4 | 主动尝试更多路径与文件 | 非生产环境或已报备的测试窗口 |
指纹识别结果要与组件清单核对:识别出某框架不代表存在对应漏洞,需确认版本与配置后再定性。
命中特征被隐藏或伪造时会产生漏报与误报:可用响应头、错误页样式与静态资源路径等多个维度互相印证,单一特征不足以下结论。