開始測試一個Web的安全性時,可以採取由外而內的方式一步步試探Web安全的完整度如何,畢竟從駭客入侵的滲透角度來說,對一個一無所知的網站要發起攻擊前,必需要先收集網站弱點(注意:這不是指漏洞,Vulnerability)信息,這些弱點通常都是從Web 外部觀察而來的,然後始能藉由這些弱點侵入網站。

  最基本的,我們會想從搜尋引擎上利用網路爬蟲的功能看是否能幫我們爬出某些Web網站的敏感訊息,這些訊息包括:Web網站的過去或測試版本、相關的使用者或管理員帳密、網頁錯誤訊息與內容、後門、有用戶名或密碼的文件、敏感目錄……

  這些內容可透過搜尋引擎搜尋:(1).site:<網站域名> --- 利用Site搜尋符尋找限定網站的所有內容。E.g. site:owasp.org (2).cache: <網站域名> ---利用cache搜尋符尋找限定網站過往被搜尋引擎所保留下來的歷史頁面。E.g. cache:owasp.org(3).Google Hacking搜尋技巧找出敏感文件信息。(4).查看HTML源始碼的<meta > tag以及robots.txt是否有設定成不讓網路爬蟲取得敏感訊息或文件內容,其中robots.txt的優先序高於<meta name=”ROBOTS” …>,即在meta中不公開的若在robots.txt中允許公開,則該內容仍然會被爬蟲取得。

  在搜尋網敏感訊息之後,接著可以嘗試發出不同的http request命令給web並且將每一個相應的web http reponse特徵取出作分析以判別web server使用哪一類型的哪一版本Web軟體,如:Tomcat 7.0 ; IIS 6.0 ; IIS 7.5 ….

  此一發現很重要,因為不同的Web軟件即使是版本不同的兩個同家廠商軟件都可能包含某種漏洞可以讓駭客進行遠端攻擊或利用,因此透過不同指令取得每一個response並分析其特徵,然後歸類到web軟體指紋庫中,每一種web軟體都有自己的指紋,這些指紋含有對多個命令的web response的相同特徵,因此當把所有命令的web response分析歸類然後與指紋庫比對後便可以知道web server使用哪一個web軟體跟版號,從而判斷出攻擊方式。

  進行Web軟體的發現後,接著可以找出目標web站點可能提供的所有web application,通常同一個IP Address會對映多個web domainWeb application,其對應方式主要有以下兩類:

  1. Port mapping: 每個port 代表一個web application,如:http://10.32.25.168:3600 ; http://10.32.25.168:1225 ; http://www.example.com:4491 …. 我們可以使用像是nmapNessus 這一類port scanner tool 來列舉出一個IP有哪些tcp port提供了http/https服務。
  2. Multiple Web Domain: 一個IP可以轉換對映到不同服務的同一主要域名,如:http://mail.e onxample.com ; http://helpdesk.example.com ; http://www.example.com該三個域名都映射到同一個IP,如: 10.36.185.20 ,通常我們可以利用web上提供的反向IP查詢服務列舉出一個IP可能擁有哪些對映了域名,如Webhosting info web site: http://whois.webhosting.info/<IP>

   除了上列兩類找出一個web 可能擁有的不同web application的方式,還有一種就是以虛擬目錄代表web applicationmultiple application in one web site,通常這一類型的web application都是隱藏未可知的,大多是透過web漏洞掃描工具和搜尋引擎的site搜尋符來發現我們不知道的web application directory on web site

  在進行上列從搜尋引擎收集敏感web訊息開始,到辨別Web軟體類型與版號以決定可攻擊手法,最後找出所有可能在同一web域名上的web application以做其他可能利用的攻擊,在這些信息都掌握之後,便可以進一步朝核心安全議題前進,下一步應該是密碼與認證,因為我們通常面對網站的第一道關卡就是帳密登入。

201789日星期三 2:32 AM

arrow
arrow

    jackterrylau 發表在 痞客邦 留言(0) 人氣()