web
指纹识别笔记
web指纹识别笔记
指纹识别分类表
分类编号 | 分类名称 | 中文名称 | 备注说明 |
---|
1CMS内容管理系统例如:wordperss
2Message Boards留言板例如:phpBB
3Database Managers数据库管理例如:phpMyAdmin
4documentation Tools文件工具例如:GitBook
5Widgets窗口小部件例如:Facebook
6Ecommerce电子商务例如:Wikinggruppen
7Photo Galleries照片画廊例如:phpAlbum
8Wikis维基百科例如:ikiwiki
9Hosting Panels主机控制板例如:cPanel
10Analytics分析统计例如:Webtrends
11Blogs博客例如:Typecho
12Javascript frameworksJavascript框架例如:SoundManager
13Issue Trackers问题跟踪例如:Redmine
14Video Players视频播放器例如:Asciinema
15Comment Systems评论系统例如:Question2Answer
16Captchas验证码例如:Mollom
17Font scripts字体脚本例如:Ionicons
18Web frameworksWeb框架例如:Includable
19Miscellaneous其他例如:Twitter Emoji(Twemoji)
20Editors编辑器例如:FrontPage
21LMS学习管理系统例如:Dokeos
22Web ServersWeb服务例如:Apache
23Cache Tools缓存工具例如:wpCache
24Rich Text Editors富文本编辑器例如:TinyMCE
25Javascript GraphicsJavascript图形插件例如:Timeplot
26mobile frameworks移动框架例如:Mobify
27Programming Languages开发语言例如:Go
28Operating Systems *** 作系统例如:Gentoo
29Search Engines搜索引擎例如:Fact Finder
30Web MailWeb邮件例如:SouirrelMail
31CDNCDN例如:Netlify
32Marketing Automation自动化营销例如:Marketo
33Web Server ExtensionsWeb服务器扩展例如:mod wsgi
34Databases数据库例如:Mysql
35Maps地图例如:Ushahidi
36Advertising Networks广告网络例如:Titan
37Network Devices网络设备例如:Moxa
38Media Servers媒体服务器例如:MedisTomb
39Webcams网络摄像头例如:MOBOTIX
40Printers打印机例如:Dell
41Payment Processors付款处理器例如:Stripe
42Tag Managers标签管理例如:Google Tag Manager
43Paywalls付费例如:Piano Solo
44Build CI Systems持续集成系统例如:Jenkins
45Control Systems控制系统例如:Schneider
46Remote Access远程访问例如:ShellInABox
47Dev Tools开发工具例如:Phabricator
48Network Storage网络存储例如:Synology DiskStation
49Feed ReadersFeed阅读器例如:Planet
50document Management Systems文档管理系统例如:MHonArc
51Landing Page Builders引导页例如:ApexPages
52Live Chat在线聊天例如:Aircall
53CRM客户关系管理例如:Salesforce
54SEO引擎优化例如:Yoast SEO
55Accounting会计例如:Akaunting
56Cryptominer挖矿程序例如:ProjectPoi
57Static Site Generator静态网站生成器例如:Hugo
58User Onboarding聊天机器人软件例如:instabot
59Javascript LibrariesJavascript库例如:jQuery
60Containers容器例如:Docker
61SaaSSaaS例如:Amazon ECS
62PaaSPaaS例如:Amazon Web Services
63IaaSIaaS例如:LocalFocus
64Reverse Proxy反向代理例如:Nginx
65Load Balancer负载均衡例如:Amazon ELB
66Service Banner服务版本例如:SSH
67Securities Web证券行业web例如:thinkive云投顾
68Securities Remote Access证券行业远程访问例如:同花顺
指纹识别规则表
字段 | 说明 |
---|
name指纹名字
cats分类集合,列表内嵌套字符串类型的分类编号
icon指纹ico的MD5值
implies包含,列表内嵌套字符串类型的指纹名字,例如:存在wordpress,一定会存在php、mysql
excludes排除,列表内嵌套字符串类型的指纹名字,例如:当前指纹存在时,一定不会存在其他指纹
website匹配软件官方网站,text代表文本匹配,regex代表re匹配
title匹配页面标题,text代表文本匹配,regex代表re匹配
js匹配scripts标签中的内容,text代表文本匹配,regex代表re匹配
headers匹配response返回的请求头信息,text代表文本匹配,regex代表re匹配
html匹配html返回内容,text代表文本匹配,regex代表re匹配
url匹配网页中所有url的数据,text代表文本匹配,regex代表re匹配
cookies匹配cookie内容,text代表文本匹配,regex代表re匹配
meta匹配meta标签中的参数的数据,text代表文本匹配,regex代表re匹配
script匹配script标签导入的路径地址,text代表文本匹配,regex代表re匹配
sub_param匹配response返回的请求头的子参数信息,text代表文本匹配,regex代表re匹配
_fingerprint_note当前指纹的应用描述,比如nginx,Nginx是一个高性能的HTTP和反向代理web服务器
_fingerprint_test_url测试指纹是否准确的url,必填项
{
"name": "jquery",
"cats": [59],
"icon": "e33ee4e794a2a92ebfaa0c569cc88103", # 图标的MD5值
"implies": "javascript",
"excludes": "javascript",
"website": {"text": "//api.jquery.com" or "regex": "//api.jquery.com"},
"title": {"text": "//api.jquery.com" or "regex": "//api.jquery.com"},
"js": {"text": "//api.jquery.com" or "regex": "//api.jquery.com"},
"headers": {"text": "//api.jquery.com" or "regex": "//api.jquery.com"},
"html":{"text": "//api.jquery.com" or "regex": "//api.jquery.com"},
"url": {"text": "//api.jquery.com" or "regex": "//api.jquery.com"},
"cookies": {"text": "//api.jquery.com" or "regex": "//api.jquery.com"},
"meta": {"text": "//api.jquery.com" or "regex": "//api.jquery.com"},
"script": {"text": "//api.jquery.com" or "regex": "//api.jquery.com"},
"sub_param": {
"Server": {
"text": "//api.jquery.com" or "regex": "//api.jquery.com"
}
},
"_fingerprint_note": "jQuery是一个快速、小且功能丰富的Javascript库。",
"_fingerprint_test_url": "https://jquery.com/",
}
指纹识别脚本介绍
指纹分类表结构介绍
{
"分类编号": {
"name": "分类名字",
"desc": "分类描述"
},
。。。
}
指纹规则表结构介绍
headers.json,html.json,title.json
{
"指纹名字": ["指纹规则","指纹权重(int类型)"]
。。。
}
指纹识别代码逻辑介绍
- 获取指纹分类集合、headers规则集合、title规则集合、HTML规则集合
- 请求目标网址
- 获取请求头信息
- 对比请求头规则与内容
- 获取网站内容,并转化成DOM树结构对象
- 对比title规则与内容
- 去掉html中不需要的节点
- 对比html股则与内容
- 返回最终结果
对比方法代码记录
# 对比规则与内容
@staticmethod
def check_finger(item_list, string):
"""
对比规则与内容
:param item_list: 规则集合
:param string: 内容字符串
:return: 结果集合,例如:{"jquery": 30}
"""
res_dict = {}
for i in item_list.keys():
# 一种同时存在与和或,一种只存在与,一种只存在或,一种文本
if "(?=.*" in item_list[i][0] and '|' in item_list[i][0]:
for j in item_list[i][0].split("|"):
if "(?=.*" in j:
list1 = re.findall(r"*(.*?))", j)
list2 = [j for j in re.findall(r"(?=.*(.*?))", j) if j in string] +
[j for j in re.findall(r"(?!=.*(.*?))", j) if j not in string]
if len(list1) == len(list2):
res_dict[i] = int(item_list[i][1])
else:
if j in string:
res_dict[i] = int(item_list[i][1])
elif "(?=.*" in item_list[i][0]:
list1 = re.findall(r"*(.*?))", item_list[i][0])
list2 = [j for j in re.findall(r"(?=.*(.*?))", item_list[i][0]) if j in string] +
[j for j in re.findall(r"(?!=.*(.*?))", item_list[i][0]) if j not in string]
if len(list1) == len(list2):
res_dict[i] = int(item_list[i][1])
elif '|' in item_list[i][0]:
if re.search(item_list[i][0], string):
res_dict[i] = int(item_list[i][1])
elif item_list[i][0] in string:
res_dict[i] = int(item_list[i][1])
return res_dict
评论列表(0条)