web指纹识别笔记

web指纹识别笔记,第1张

web指纹识别笔记 web指纹识别笔记 指纹识别分类表 分类编号分类名称中文名称备注说明1CMS内容管理系统例如:wordperss2Message Boards留言板例如:phpBB3Database Managers数据库管理例如:phpMyAdmin4documentation Tools文件工具例如:GitBook5Widgets窗口小部件例如:Facebook6Ecommerce电子商务例如:Wikinggruppen7Photo Galleries照片画廊例如:phpAlbum8Wikis维基百科例如:ikiwiki9Hosting Panels主机控制板例如:cPanel10Analytics分析统计例如:Webtrends11Blogs博客例如:Typecho12Javascript frameworksJavascript框架例如:SoundManager13Issue Trackers问题跟踪例如:Redmine14Video Players视频播放器例如:Asciinema15Comment Systems评论系统例如:Question2Answer16Captchas验证码例如:Mollom17Font scripts字体脚本例如:Ionicons18Web frameworksWeb框架例如:Includable19Miscellaneous其他例如:Twitter Emoji(Twemoji)20Editors编辑器例如:FrontPage21LMS学习管理系统例如:Dokeos22Web ServersWeb服务例如:Apache23Cache Tools缓存工具例如:wpCache24Rich Text Editors富文本编辑器例如:TinyMCE25Javascript GraphicsJavascript图形插件例如:Timeplot26mobile frameworks移动框架例如:Mobify27Programming Languages开发语言例如:Go28Operating Systems *** 作系统例如:Gentoo29Search Engines搜索引擎例如:Fact Finder30Web MailWeb邮件例如:SouirrelMail31CDNCDN例如:Netlify32Marketing Automation自动化营销例如:Marketo33Web Server ExtensionsWeb服务器扩展例如:mod wsgi34Databases数据库例如:Mysql35Maps地图例如:Ushahidi36Advertising Networks广告网络例如:Titan37Network Devices网络设备例如:Moxa38Media Servers媒体服务器例如:MedisTomb39Webcams网络摄像头例如:MOBOTIX40Printers打印机例如:Dell41Payment Processors付款处理器例如:Stripe42Tag Managers标签管理例如:Google Tag Manager43Paywalls付费例如:Piano Solo44Build CI Systems持续集成系统例如:Jenkins45Control Systems控制系统例如:Schneider46Remote Access远程访问例如:ShellInABox47Dev Tools开发工具例如:Phabricator48Network Storage网络存储例如:Synology DiskStation49Feed ReadersFeed阅读器例如:Planet50document Management Systems文档管理系统例如:MHonArc51Landing Page Builders引导页例如:ApexPages52Live Chat在线聊天例如:Aircall53CRM客户关系管理例如:Salesforce54SEO引擎优化例如:Yoast SEO55Accounting会计例如:Akaunting56Cryptominer挖矿程序例如:ProjectPoi57Static Site Generator静态网站生成器例如:Hugo58User Onboarding聊天机器人软件例如:instabot59Javascript LibrariesJavascript库例如:jQuery60Containers容器例如:Docker61SaaSSaaS例如:Amazon ECS62PaaSPaaS例如:Amazon Web Services63IaaSIaaS例如:LocalFocus64Reverse Proxy反向代理例如:Nginx65Load Balancer负载均衡例如:Amazon ELB66Service Banner服务版本例如:SSH67Securities Web证券行业web例如:thinkive云投顾68Securities Remote Access证券行业远程访问例如:同花顺 指纹识别规则表 字段说明name指纹名字cats分类集合,列表内嵌套字符串类型的分类编号icon指纹ico的MD5值implies包含,列表内嵌套字符串类型的指纹名字,例如:存在wordpress,一定会存在php、mysqlexcludes排除,列表内嵌套字符串类型的指纹名字,例如:当前指纹存在时,一定不会存在其他指纹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类型)"]
    。。。
}
指纹识别代码逻辑介绍
  1. 获取指纹分类集合、headers规则集合、title规则集合、HTML规则集合
  2. 请求目标网址
  3. 获取请求头信息
  4. 对比请求头规则与内容
  5. 获取网站内容,并转化成DOM树结构对象
  6. 对比title规则与内容
  7. 去掉html中不需要的节点
  8. 对比html股则与内容
  9. 返回最终结果
对比方法代码记录
# 对比规则与内容
	@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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4964484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存