前言
如何分析一個網站,在某些情形下是需要的,原因是透過網站的分析能夠找到此網站是如何建立、推測使用的技術與拆解一套網站的過程,這將對於日後開發網站與使用的各項技術有所依據。本文章中,透過一個寵物醫療網站,並以不同的角度來分析此網站如何開發而成,並從分析的過程中找到有趣的地方。
目標網站
首先,我們需要有目標網站,以「https://drfurkids.com/index.php」連結為例,進入此網站後能夠進入到此網站的首頁。接著,開始從連結部分進行初步的分析。
連結分析
依據網站連結,我們能夠拆解成幾個項目:
- 此網站使用的協定為HTTPS,透過加密連線的傳輸機制建立HTTP的連線。
- HTTPS連線在更進一步的分析,我們能夠知道使用的憑證為「Let’s Encrypt」。
- 網域名稱為「drfurkids.com」,我們透過whois的方式執行網域查詢,能夠得知以下的資訊:
- DNS網域伺服器為:NS1.DREAMHOST.COM與NS2.DREAMHOST.COM。
- IP位址位在 69.163.248.123。
- 從上述的訊息能夠得知,此網站架設於DreamHost的國外主機且網域也是透過此主機供應商註冊。
- 「index.php」為PHP程式語言的檔案,並以後端渲染的作法來顯示此網站,因此此網站應為PHP所開發。
網站功能分析
從首頁的網站分析,我們能夠知道此網站有「Home」、「最新消息」、「醫療團隊」、「收費方式」、「常見問題」、「聯絡我們」與「會員註冊」等功能,我們以「會員註冊」為例;點擊進入之後,會看到有「手機號碼」與「驗證碼」作為輸入的欄位,隨意輸入手機號碼與驗證碼後,分別按下「傳送簡訊」與「下一步」,整個網站就會卡住,若在此時按下「F12」進入網頁開發人員的控制台,則我們可以得知有多個請求正在「pending」中,這代表多數由網頁瀏覽器所發送的請求尚未結束與與收到回應內容,我們推斷此會員註冊的功能異常或是已經失效。
更糟糕的情況是,當在此會員註冊頁面(register.php)進行重新整理,則整個頁面會卡住,而最終出現「503 Service Unavailable」之HTTP狀態碼。
另外,從瀏覽器的開發人員控制台中,我們可以發現到處於pending狀態的請求為:「https://drfurkids.com/_AjaxApi/_AjaxReq.php」網址,這代表有問題的後端與PHP程式碼為「_AjaxReq.php」;若透過網頁瀏覽器瀏覽:「https://drfurkids.com/_AjaxApi/」,則我們能夠發現具有網站目錄遍歷的特性,我們就能夠更進一步去瀏覽去推測每支前端與後端程式之目的與對應可能的功能;從遍歷出來的目錄能夠得知此HTTP Server為Apache。
從前述的遍歷後的目錄,舉「_AjaxDocdata.php」為例,我們點擊後會回應一組基於JSON編碼的字串:「{“status”:0,”data”:”\u627e\u7121\u6b64\u65b9\u6cd5″}」。
將此JSON字串解析後,得到的結果如下:
{
"status": 0,
"data": "找無此方法"
}
從結果得知,此後端PHP程式仍有在運作且有依據基本邏輯執行相對應的回應。
結論
從前述的基本網站分析,我們能夠得知一個網站整體使用的技術與開發方式,透過這樣的分析作法,同時也能夠更進一步推測網站可能潛在哪些的漏洞與哪些功能已經失效,後續我們就能夠朝向以下的方式各別進行:
- 網站測試,經過初步的手動測試,發現此網站存在許多功能失效或是有問題,因此我們可以朝向更自動化的方式並以端對端的作法來將此網站進行全面性的測試,並找到更多錯誤。
- 網站漏洞檢測,經過初步的測試,發現此網站具有潛在的漏洞問題,因此我們可以考慮導入與使用各項滲透測試工具來針對此網站做全面性的檢測,並找到更多實際的漏洞。




