Web指纹识别的介绍与编写
一、 前言
web指纹是web服务组件在开发时留下的对其类型及版本进行标识的特殊信息,包括web服务器指纹、web运用指纹以及前端框架指纹等。
二、 初见
实践是认识事物最快的途径,这里先使用常见的指纹识别工具做简单的指纹识别示范。
1、 Whatweb
Whatweb是一个基于Ruby语言的开源网站指纹识别软件,正如它的名字一样,whatweb能够识别各种关于网站的详细信息包括:CMS类型、博客平台、中间件、web框架模块、网站服务器、脚本类型、JavaScript库、IP、cookie等。
在kali下sudo apt install whatweb :
对网站进行指纹识别:
2、 Wappalyzer
Wappalyzer是基于正则表达式来识别web应用,它的功能是识别单个url的指纹,其原理就是给指定URI发送HTTP请求,获取响应头与响应体并按指纹规则进行匹配。它也是一款浏览器插件,能识别出网站采用了那种web技术,能够检测出CMS和电子商务系统、留言板、javascript框架,主机面板,分析统计工具和其它的一些web系统。这里主要介绍基于node.js的wappalyer的安装与使用。
(1)node.js环境的安装,官网下载地址:
https://nodejs.org/en/
(2)通过Node.js安装wappalyzer

记住这个路径
C:\Users\xx\AppData\Roaming\npm\node_modules\wappalyzer,之后讲解调试指纹有用
(3)使用wappalyzer指纹识别

三、 探究
1、 指纹识别的几种方式
-
· 网页中发现关键字
-
· 特定文件的MD5(主要是静态文件、不一定要是MD5)
-
· 指定URL的关键字
-
· 指定URL的TAG模式
-
2、 指纹识别分类 |
3、指纹规则
4、 指纹识别例子讲解
备注:总体可信值如果超过100,也只会返回100。
"cats": [ "18"],
"html":"(href|action|src).*?=.*?(action|do)\\;confidence:50",
"url": "/.*\\.do$|/.*\\.action$\\;confidence:40",
"html": "Struts Problem Report",
"website": "http://struts.apache.org/",
"_fingerprint_note":"Apache Struts是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。",
"_fingerprint_test_url":"https://www.shuziguanxing.com/"
}
5、 简单分析wappalyzer的执行过程
Wappalyze执行文件在C:\Users\xx\AppData\Roaming\npm\下
Wappalyzer的包目录在C:\Users\xx\AppData\Roaming\npm\node_modules\wappalyzer
这里我们重点看apps.json文件,apps.json文件是个什么东西呢?apps.json记录的是整个的指纹规则,之后我们自己编写的指纹就是要放进这里调试。
看下里面是一个怎么样的构造:
Json文件里面有两部分apps与categories,我们可以发现apps里面的信息跟上面指纹例子特别像,其实我们之后写的指纹就是放在这里面进行识别网站,categories是指纹的类型,这项可以不用管,只看apps。
6、 调试编写好的指纹
如果你希望只显示你要调试的指纹的话,你可以把apps.json文件备份为apps.json.bak,然后把apps.json中的apps部分里面的内容删除,只放入自己编写的指纹。
以织梦cms为例子,执行全部的指纹:
如果仅仅是测试cms,不想看到那么多其他信息,你可以删除其他指纹,留下我们写好要调试的指纹,这样看起来就很清晰了。
四、 实战
1、 查找目标
上sofa:https://fofa.so查找“禅道”

2、 判断观星指纹平台是否存在该指纹
复制sofa查找到的目标到观星指纹平台,没有该web应用指纹信息,那我们开始编写这个web应用的指纹。
3、 观察该web应用
(1)cookie:zentaosid
(2)html
(3)script
4、 依据以上特征编写指纹
下面的是依据上面分析来写的,圈出来的信任值只是方便编译时,查看命中哪条记录,等最后调试完成后再按实际情况给信任值。

5、 提交到指纹平台
https://fp.shuziguanxing.com/#/batchAdd

五、关于数字观星指纹收录平台
数字观星指纹收录平台中的指纹规则基于Wappalyzer,编写的指纹能够通过Wappalyzer调试。指纹收录平台面向大众收集指纹信息,提交并通过的指纹会依据质量获得相应的星豆奖励。具体信息请看看官方说明:
https://fp.shuziguanxing.com/#/fingerplatinfo
平台里介绍了接收指纹的范围、指纹提交流程、指纹审核流程以及指纹评价标准等。欢迎大家积极提交指纹和分享经验。