欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

歡迎來到夢飛科技

網絡技術

當前優惠活動:

Web網站措施范例指紋識別

web應用指紋識別,是web滲透信息收集最要害的一步,這方面開源的東西也很是多,像BlindElephant,whatweb 以及在非安詳圈都很火的wappalyzer。本文主要描寫如何利用wappalyzer的perl與php接口舉辦指紋識別。

wappalyzer的成果是識別單個uri的指紋,其道理就是給指定URI發送HTTP請求,獲取響應頭與響應體并按指紋法則舉辦匹配。這也是web應用指紋識別最基本的部門,除此之外,尚有指紋置信度計較(如何去處偽造指紋,多種指紋特征如何綜合判定,埋沒指紋信息如何提取),整個站點的指紋識別還涉及到有效爬蟲抓取,,漫衍式計較等問題,這些都不在本文內容中。

一、perl版本

道理:

給指定uri發送HTTP請求,通過闡明HTTP相應的以下部門來判定指紋

(1)  headers特征 

響應頭key:value對,多個key:value用逗號離隔,譬喻



"headers": { "X-AMP-Version": "([\d.]+)\;version:\1", "Set-Cookie": "^AMP=" },

(2)   html特征 

響應體內容,多個法則用逗號離隔,譬喻



"html": [ "<div class="[^"]*parbase", "_jcr_content", "/etc/designs/", "/etc/clientlibs/" ]

出格留意:html全文匹配的法則必然要審慎編寫

(3)  url特征

url內容,譬喻



"url": "/cgi-bin/UCEditor\?(?:.*&)?merchantid=."

(4)  meta特征

響應html 頁面中諸如<meta name="version" content="neblog-1.0"/>中的名字name:內容content對,多個法則用逗號離隔,譬喻



"meta": { "generator": "webEdition", "DC.title": "webEdition" }

(5)  script特征



"script": [ "angular(?:\-|\.)([\d.]*\d)[^/]*\.js\;version:\1", "/([\d.]+(\-?rc[.\d]*)*)/angular(\.min)?\.js\;version:\1", "angular.*\.js" ]

范圍性

不支持法則文件中APP版本號與置信度的獲取

對非utf8的中文編碼大概會存在問題

利益:

較之PHP版本,利用qr正則預編譯處理懲罰,可以提前發明正則的問題,這是我選擇該語言版本的主要原因。

(接下來的php版本就能讓你知道正則不預編譯處理懲罰有多坑了!)


劇本的成果:

(1)指紋識別功效按JSON名目返回,以便后續指紋信息入庫等處理懲罰

(2)支持批量uri查詢

(3)支持指定自界說JSON名目標指紋法則文件 

(默認的指紋文件安排在/usr/lib/perl5/WWW/apps.json ,詳細的路徑會因cpan模塊的安裝路徑有區別

可以利用perl -V [email protected]變量來確定路徑,可能更暴力的find吧)

安裝



cpan -i  WWW::Wappalyzer  



clone https://github.com/tanjiti/FingerPrint.git


運行

(1)獲取單個uri的指紋



perl FingerPrint.pl www.xxx.com<uri 必選> tanjiti.json[指紋法則文件,可選]

返回功效 

{
"www.xxx.com": {
"blogs": [
"WordPress"
],
"web-servers": [
"Nginx"
],
"cdn": [
"CloudFlare"
],
"cms": [
"WordPress"
],
"font-scripts": [
"Google Font API"
],
"javascript-frameworks": [
"jQuery"
],
"javascript-graphics": [
"Javascript Infovis Toolkit"
]
}
}

(2) 從文件讀取url列表舉辦批量指紋識別,并將功效輸出到文件中

perl FingerPrint.pl url.txt<uri 文件路徑 必選> tanjiti.json[指紋法則文件,可選]

功效輸出到 url.txt__fingerprint 文件里

指紋法則文件編寫示例



more tanjiti.json



"apps": {
"Discuz!":{
      "website": "www.discuz.net/forum.php",
       "cats": [ 1 ],
"meta": { "generator": "Discuz"},
"headers": {"Set-Cookie": "_lastact.*_sid|_sid.*_lastact|_sid.*smile|smile.*_sid"},
"url": "/uc_server[/$]|uc_client[/$]",
"html": "Powered by (?:Discuz!|<a href="http://www\.discuz\.net/"|UCenter)",
"implies": "php"
},
   "PHP": {
"website": "php.net",
"cats": [ 27 ],
"headers": { "Server": "php/?([\d.]+)?\;confidence:40\;version:\1", "X-Powered-By": "php/?([\d.]+)?\;confidence:40\;version:\1", "Set-Cookie": "PHPSESSID" },
"url": "\.php(?:$|\?)"
}
}


二、php版本

道理 同perl版本,區別有兩點:

1. HTTP請求部門:較之perl利用LWP發送HTTP請求,php利用curl發送HTTP請求

夢飛科技 - 全球數據中心基礎服務領先供應商

Copyright © 2003-2019 MFISP.COM. 國外服務器租用 IDC公司 版權所有 ? 粵ICP備11019662號

主站蜘蛛池模板: 闵行区| 榆中县| 鲁山县| 宿州市| 胶南市| 定陶县| 靖江市| 新沂市| 华阴市| 鱼台县| 崇义县| 新乐市| 甘洛县| 阿拉善左旗| 普洱| 镇江市| 大渡口区| 金湖县| 通江县| 五峰| 徐汇区| 上高县| 盐边县| 马关县| 岗巴县| 民丰县| 临潭县| 宜兰县| 平乡县| 博野县| 于田县| 宾阳县| 景德镇市| 松江区| 江孜县| 枣庄市| 屏边| 樟树市| 温泉县| 烟台市| 措美县|