Wappalyzer 怎么进行指纹识别的
Wappalyzer 的指纹识别过程可以概括为以下几个主要步骤:
- 特征库匹配:Wappalyzer 维护一个巨大的、社区驱动的 JSON 特征库文件,其中包含了各种 Web 技术(如 CMS、Web 服务器、前端框架、编程语言、数据库等)的独特指纹信息
- 获取信息:当你访问一个网站时,Wappalyzer 会利用浏览器已经加载的数据,从中提取出以下几类信息:
- HTTP 响应头(HTTP Headers):检查
Server
、X-Powered-By
、Set-Cookie
等响应头字段。例如,Server: Nginx
就直接表明使用了 Nginx 服务器;X-Powered-By: PHP/7.4.3
则表明使用了特定版本的 PHP - HTML 页面内容:在页面的
<body>
和<head>
标签中搜索特定的字符串。例如,许多 CMS 会在页面中包含特定的元标签,如<meta name="generator" content="WordPress 6.0.1" />
,这直接暴露了所使用的技术及其版本 - JavaScript 变量和库:检查全局 JavaScript 变量或特定库文件的存在。例如,如果页面加载了
jquery.js
,并且存在window.jQuery
变量,Wappalyzer 就可以识别出使用了 jQuery 库 - URL 路径和文件名:分析 URL 的结构,特别是目录和文件名。例如,
/wp-content/
目录是 WordPress 的典型特征;而/admin
或/login
路径可能指向特定的 CMS 或框架 - Cookies:检查 Cookie 名称或值。例如,
wordpress_logged_in_...
或PHPSESSID
都是典型的指纹信息 - CSS 文件:通过分析 CSS 文件的路径、内容或文件名来识别技术
- HTTP 响应头(HTTP Headers):检查
- 匹配与判断:Wappalyzer 将上述提取到的信息与本地的特征库进行比对。如果某个或某几个特征与库中的某个技术指纹相匹配,那么该技术就会被识别出来,并显示在 Wappalyzer 的图标或面板中
- 结果展示:最终,Wappalyzer 会将所有匹配成功的技术以图标和文字的形式展示给用户,通常还会附带该技术的名称、版本和类型(如 CMS、框架、库等)