Web指纹识别的介绍与编写

企业动态
网络上开源的Web指纹识别程序很多,如Wappalyzer,Whatweb, wpscan, joomscan等等,在线指纹平台有云悉,还有我们本文重点介绍的数字观星指纹平台等。接下来会介绍如何编写以及编译指纹并提交到平台上。

一、 前言

Web指纹是Web服务组件在开发时留下的对其类型及版本进行标识的特殊信息,包括Web服务器指纹、Web运用指纹以及前端框架指纹等。在Web安全测试过程中,收集Web指纹信息也是一个比较重要的步骤;在安全运营过程中,通过指纹识别识别资产的Web信息,这样能更加了解整个资产存在哪些方面的威胁,然后对症检测修补。

网络上开源的Web指纹识别程序很多,如Wappalyzer,Whatweb, wpscan, joomscan等等,在线指纹平台有云悉,还有我们本文重点介绍的数字观星指纹平台

(https://fp.shuziguanxing.com/#/)等。接下来会介绍如何编写以及编译指纹并提交到平台上。

[[283374]]

二、 初见

实践是认识事物最快的途径,这里先使用常见的指纹识别工具做简单的指纹识别示范。

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指纹识别

三、 探究

这里主要探讨如何编写基于Wappalyzer的指纹(参考https://fp.shuziguanxing.com/#/fingerplatinfo)

1.  指纹识别的几种方式

  • 网页中发现关键字
  • 特定文件的MD5(主要是静态文件、不一定要是MD5)
  • 指定URL的关键字
  • 指定URL的TAG模式

2. 指纹识别分类

基于Wappalyzer的指纹识别分类

3. 指纹规则

4. 指纹识别例子讲解

"Struts": {
"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/"
}

描述:struts组件,分类18(Web框架),匹配html中是否存在action,do后缀,定义可信值50,匹配url中是否有do和action后缀,定义可信值40,匹配html中是否存在“Struts Problem Report”字符串,默认不定义可信值则为100。备注:总体可信值如果超过100,也只会返回100。

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记录的是整个的指纹规则,之后我们自己编写的指纹就是要放进这里调试。

看下里面是一个怎么样的构造:

{
"$schema":"../schema.json",
"apps":{
"1C-Bitrix":{
"cats":[
1
],
"headers":{
"Set-Cookie":"BITRIX_",
"X-Powered-CMS":"Bitrix Site Manager"
},
"html":"(?:<link[^>]+components/bitrix|(?:src|href)=\"/bitrix/(?:js|templates))",
"icon":"1C-Bitrix.png",
"implies":"PHP",
"script":"1c-bitrix",
"website":"http://www.1c-bitrix.ru"
},
},
"categories":{
"1":{
"name":"CMS",
"priority":1
},
......
}
}

Json文件里面有两部分apps与categories,我们可以发现apps里面的信息跟上面指纹例子特别像,其实我们之后写的指纹就是放在这里面进行识别网站的,categories是指纹的类型,这项可以不用管,只看apps。

6. 调试编写好的指纹

Wappalyzer在执行过程中会调用apps.json文件内容进行指纹匹配。所以我们编写好的指纹放进里面进行调试。

如果你希望只显示你要调试的指纹的话,你可以把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​​,里面还介绍了接收指纹的范围、指纹提交流程、指纹审核流程以及指纹评价标准等。

最后,感谢超哥指导,笔者一介菜鸟,有误之处欢迎指出。

 

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2022-08-26 09:00:00

非接触式指纹识别生物识别安全

2015-11-04 15:21:07

2015-10-22 23:03:59

2015-07-06 14:32:10

2014-12-30 13:29:00

指纹识别生物识别身份验证

2013-09-24 11:04:39

2021-08-26 20:05:22

人脸识别AI人工智能

2015-05-22 09:56:29

Android M谷歌

2019-03-13 15:14:38

指纹识别移动支付银行卡

2009-03-30 08:39:01

iphone苹果移动OS

2017-04-13 07:47:06

2020-11-04 15:07:39

人脸识别指纹识别生物识别

2013-06-05 13:37:00

Windows 8.1

2010-06-30 16:17:09

NAC安全终端安全

2020-05-15 15:20:38

指纹识别人脸识别手机

2013-01-11 15:42:44

2012-09-06 13:33:53

指纹识别器EFS加密

2014-07-30 10:24:25

2013-09-12 14:24:31

2013-09-11 14:57:15

点赞
收藏

51CTO技术栈公众号