采集目標瀏覽器指紋的方法很多,而采集擴展指紋也大同小異。確定目標安裝了什么擴展非常重要。只有這樣,攻擊才能更直截了當,并能排除不確定性。
研究人員找到了很多枚舉目標可能會使用的擴展的方法。擴展并不會隱瞞它們會增大瀏覽器攻擊面的事實。事實上,有些擴展還會主動告訴你。接下來南昌網(wǎng)絡(luò)公司小編就為大家介紹一下使用HTTP 首部采集指紋檢測拓展的方法。
有的擴展可能會稍微修改一點請求首部,而有的擴展則生怕別人不知道瀏覽器安裝了它們,對請求首部進行重度定制。為了采集擴展指紋,我們需要通過檢測目標擴展,來確定請求首部是否被修改過。
為了看出修改,可以捕獲安裝擴展前后的請求首部加以比較。一比較就能看出不同。別忘了,有些擴展只有激活才會有所不同。下面我們即將展示的FirePHP的例子就是這樣的。
另一種檢測首部變化的方法是查詢擴展源代碼。當然,只有Firefox和Chrome擴展是可以查看源代碼的,因為它們的安裝文件只是簡單的包含代碼的壓縮.zip文件。
對于Chrome擴展,某個視圖頁面(通常是后臺頁面)會動態(tài)修改請求首部。應(yīng)該搜索chrome.webRequest.onBeforeSendHeader函數(shù)調(diào)用。使用這個API需要webRequest權(quán)限,因此首先應(yīng)該檢測manifest.json文件,看看是否請求了該權(quán)限。如果沒有,那么onBeforeSend Headers函數(shù)存在與否就無所謂了。
另一種在Chrome擴展中注入自定義首部的方式是在內(nèi)容腳本里。就是使用標準的XMLHttp Request.setRequestHeader函數(shù)發(fā)送Ajax請求。搜索這個函數(shù)也有助于發(fā)現(xiàn)擴展是否在操縱瀏覽器首部。
對于Firefox擴展,搜索setRequestHeader可以找到修改請求首部的位置。在下面的FirePHP代碼中,可以看到該擴展修改了User-Agent請求首部:
httpChannel.setRequestHeader("User-Agent",
httpChannel.getRequestHeader("User-Agent") + ' '+
"FirePHP/" + firephp.version, false);
這行代碼讓FirePHP擴展在User-Agent請求首部后面追加了FirePHP/,從而表明自己的可用性。正如下面的請求首部所示,要發(fā)現(xiàn)這一點非常容易:
GET / HTTP/1.1
Host: browserhacker.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0 FirePHP/0.7.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
前面Firefox瀏覽器在請求中發(fā)送給Web服務(wù)器的HTTP首部被修改了。User-Agent首部字符串后面有FirePHP/0.7.1。這里,不僅可以看到用戶安裝了擴展,還知道了擴展的版本。
以上就是南昌網(wǎng)絡(luò)公司小編為大家介紹的關(guān)于使用HTTP 首部采集指紋檢測拓展的方法,檢測拓展的方法不止這一種,還可以用其他方法檢測,不過今天小編就不多做介紹了,感興趣的朋友歡迎繼續(xù)關(guān)注本公司網(wǎng)站動態(tài),后期會為您詳細介紹。此外,有想了解關(guān)于南昌網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)等方面的知識的朋友,可隨時來電和我們聯(lián)系,我們將竭誠為您服務(wù)!