### 第一段:工具定位 \*\* 渗透阶段:\*\* 信息收集阶段,Web 技术栈指纹识别,识别 CMS / 框架 / 服务器 / 中间件 ### 第二段:开发语言 Ruby 语言,基于 TCPSocket C 扩展,插件架构识别 Web 技术栈 ### 第三段:调用链路 ``` whatweb 命令行输入 → Ruby TCPSocket(C扩展)→ sys/socket.h socket()/connect() → 发送HTTP请求 → 接收响应 → 正则匹配响应头/HTML/Cookie → 插件架构匹配技术栈指纹 → 输出CMS/框架/服务器版本 ``` * 上层(组件:whatweb —— Ruby Web 技术栈指纹识别工具。说明:命令行入口) * 中间层(组件:语言标准库。说明:协议封装) * 底层(组件:libc / 系统调用。说明:socket/connect) #### 关键 C 函数解析 * `socket()`(作用:创建 TCP 套接字,调用号 41) * `connect()`(作用:连接目标 HTTP 端口,调用号 42