一、 概念
每个应用都可能存在一些特殊的标记,通过这些标记可以推断出网站的一些技术架构。这些标记可以称之为WEB指纹。
浏览器指纹
Electronic Frontier Foundation 研究出来的技术,可以匿名识别WEB浏览器,准确率高达94%。通过查询浏览器的代理字符串,屏幕色深,语言,插件安装与支持的 MIME 类型,时区偏移量和其他功能,如本地存储和会话存储等等,然后这些值通过散列函数传递产生指纹,不需要通过 Cookie 存储就可以识别浏览器。
对于WEB应用来说,有以下8层
- 第三方内容:广告统计、mockup
- WEB前端框架
- WEB应用,BBS/CMS/BLOG
- WEB开发框架,Django/Rails/TP/Strusts
- 服务端语言
- WEB容器
- 存储
- 操作系统
(引自:http://blog.csdn.net/u011001084/article/details/73481744)
二、 WEB服务器指纹分析
1. WEB服务器指纹内容
1、Web服务器名称,版本
2、Web服务器后端是否有应用服务器
3、数据库(DBMS)是否部署在同一主机(host),数据库类型
4、是否使用反向代理(reverse proxy)
5、是否使用负载均衡(load balancing)
6、Web应用使用的编程语言
三、 一些特征
Struts2 会设置特殊的JSESSIONID的COOKIE字段:
Set-Cookie: JSESSIONID=C09CBBF************7CF6D25D4F0
freebuf包含Server字段以及WP-Super-Cache
Server字段会指示容器,WP-Super-Cache表明freebuf可能使用的某个插件
通过后缀观察后端语言
favicon.ico
一些默认favicon.ico可以判断CMS
robots.txt
有些cms会默认robots.txt
目录扫描 directory/pages busting
可以使用wfuzz进行目录扫描
错误界面
HTTP响应头、特殊文本、特殊class,特殊meta、scripts,URL特征等
四、 主机端口特征
默认端口
端口交互特征
Nmap OS指纹
SSL证书
五、工具
WhatWeb
Set-Cookie: JSESSIONID=C09CBBF************7CF6D25D4F0
Wappalyzer
https://github.com/AliasIO/Wappalyzerhttps://github.com/AliasIO/Wappalyzer/wiki
天蝎指纹库
Plecost
https://github.com/iniqua/plecost
BlindElephant
https://github.com/lokifer/BlindElephant
Website Analyzer
https://github.com/wofeiwo/Website-Analyzer/
cms-explorer
https://github.com/FlorianHeigl/cms-explorer
shodan/fofa/zoomeye/傻蛋等
钟馗之眼 ZoomEye
FingerprintJS
http://valve.github.io/fingerprintjs/
参考资料
https://www.zhihu.com/question/23389858
http://blog.csdn.net/u011001084/article/details/73481744
http://www.cnblogs.com/lhb25/p/browser-fingerprinting-js-library.html