過去,我們通過分析擴展就能很容易采集擴展指紋?;谇鍐挝募姹?的谷歌Chrome擴展,允許訪問擴展的所有文件,就是通過相應的URL來實現(xiàn):chrome-extension:///path/to/file.txt。因為所有擴展都有一個manifest.json文件,所以知道GUID后就可以請求下面的URL了:
chrome-extension://abcdefghijklmnopqrstuvwxyz012345/manifest.json
然而現(xiàn)在卻不是這樣了,現(xiàn)在的方法很是讓南昌網(wǎng)站設計小編郁悶,因為現(xiàn)在需要利用清單文件中列出的文件,稍微麻煩一點才能采集擴展指紋。這簡直是太坑了。而且在清單文件版本2中,谷歌默認不允許訪問擴展的資源。
當然,有些擴展開發(fā)者依賴于資源可訪問才能正常工作。谷歌在manifest.json文件中,創(chuàng)建了一個新的數(shù)組,叫web_accessible_resources。這個數(shù)組列出了可以通過URL訪問的資源。
以下來自清單文件中的代碼片段,就是這樣一個被聲明的數(shù)組的例子,其中將logo.png、menu.html和style.css標記為可訪問:
{
{
"name": "extensionName",
"version": "versionString",
"manifest_version": 2
},
"web_accessible_resources": [ "logo.png", "menu.html", "style.css" ]
}
對這個虛構(gòu)的擴展而言,可以通過以下URL訪問logo.png資源:
chrome-extension://abcdefghijklmnopqrstuvwxyz012345/logo.png
實際上,只要兩個信息就可以采集目標擴展指紋了。第一個是GUID,待會南昌網(wǎng)絡公司會為大家介紹;第二個就是web_accessible_resources數(shù)組中定義了什么資源(如果有的話)。
慶幸的是,大多數(shù)擴展都至少會在web_accessible_resources數(shù)組中聲明一項資源。知道這個資源后,接下來是找到擴展的GUID(32位字符串)。只要到Chrome Web Store中抓取相關(guān)內(nèi)容就行了。
抓取的方法有兩種,可以手工抓取,也可以使用Kotowicz開發(fā)的XSS ChEF26之類的工具。這些工具會從Chrome Web Store下載并解壓擴展,你可以使用它掃描manifest.json文件,并在此基礎上構(gòu)建你的Chrome擴展指紋采集數(shù)據(jù)庫。
有了Chrome擴展指紋數(shù)據(jù)庫,需要在勾連瀏覽器中運行一些代碼,探測相應資源。以前面的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);
基于這段代碼的模式,可以迭代擴展數(shù)據(jù)庫,迅速采集目標擴展指紋。
到這里,南昌網(wǎng)站設計小編就把使用清單文件采集指紋檢測拓展的方法已經(jīng)講完了,還是那句話,對于這種方法如果還有哪些不明白的地方,可隨時來電和我們聯(lián)系,我們一定專業(yè)為您解答!