过去,我们通过分析扩展就能很容易采集扩展指纹。基于清单文件版本1的谷歌Chrome扩展,允许访问扩展的所有文件,就是通过相应的URL来实现:chrome-extension:///path/to/file.txt。因为所有扩展都有一个manifest.json文件,所以知道GUID后就可以请求下面的URL了:
chrome-extension://abcdefghijklmnopqrstuvwxyz012345/manifest.json
然而现在却不是这样了,现在的方法很是让南昌网站设计小编郁闷,因为现在需要利用清单文件中列出的文件,稍微麻烦一点才能采集扩展指纹。这简直是太坑了。而且在清单文件版本2中,谷歌默认不允许访问扩展的资源。
当然,有些扩展开发者依赖于资源可访问才能正常工作。谷歌在manifest.json文件中,创建了一个新的数组,叫web_accessible_resources。这个数组列出了可以通过URL访问的资源。
以下来自清单文件中的代码片段,就是这样一个被声明的数组的例子,其中将logo.png、menu.html和style.css标记为可访问:
{
{
"name": "extensionName",
"version": "versionString",
"manifest_version": 2
},
"web_accessible_resources": [ "logo.png", "menu.html", "style.css" ]
}
对这个虚构的扩展而言,可以通过以下URL访问logo.png资源:
chrome-extension://abcdefghijklmnopqrstuvwxyz012345/logo.png
实际上,只要两个信息就可以采集目标扩展指纹了。第一个是GUID,待会南昌网络公司会为大家介绍;第二个就是web_accessible_resources数组中定义了什么资源(如果有的话)。
庆幸的是,大多数扩展都至少会在web_accessible_resources数组中声明一项资源。知道这个资源后,接下来是找到扩展的GUID(32位字符串)。只要到Chrome Web Store中抓取相关内容就行了。
抓取的方法有两种,可以手工抓取,也可以使用Kotowicz开发的XSS ChEF26之类的工具。这些工具会从Chrome Web Store下载并解压扩展,你可以使用它扫描manifest.json文件,并在此基础上构建你的Chrome扩展指纹采集数据库。
有了Chrome扩展指纹数据库,需要在勾连浏览器中运行一些代码,探测相应资源。以前面的logo.png资源为例,可以生成以下代码:
var testScript = document.createElement("script");
testURL = "chrome-extension://abcdefghijklmnopqrstuvwxyz012345/logo.png";
testScript.setAttribute("onload", "alert('Extension Installed!')");
testScript.setAttribute("src", testURL);
document.body.appendChild(testScript);
基于这段代码的模式,可以迭代扩展数据库,迅速采集目标扩展指纹。
到这里,南昌网站设计小编就把使用清单文件采集指纹检测拓展的方法已经讲完了,还是那句话,对于这种方法如果还有哪些不明白的地方,可随时来电和我们联系,我们一定专业为您解答!