HTTP Request/Response駭客跟我們想的不一樣

HTTP Request/Response駭客跟我們想的不一樣

這篇文章主要針對 HTTP 基本的 Request/Response 介紹,

以及駭客會如何利用這些資訊還有基本的測試工具

 

Browser Developer Tools (F12)

可以利用瀏覽器的 F12 功能,舉 Chrome 為例

F12 > Network > 選取其中一個 HTTP Get Request 後 > Headers

這邊就可以看出該 Http Request/Response 的相關 Headers

Http Request

Remote Address: 65.61.137.117:80
Request URL: http://www.testfire.net/
Request Method: GET
Status Code: 200 OK

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Encoding:gzip,deflate,sdch
Accept-Language: zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie:ASP.NET_SessionId=my4v1t55wdcfbgbb40oqeaym; amSessionId=794211227
Host:www.testfire.net
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36

 

Response Headers

Cache-Control:no-cache
Content-Length:9952
Content-Type:text/html; charset=utf-8
Date:Wed, 12 Nov 2014 13:09:50 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.0
X-AspNet-Version:2.0.50727
X-Powered-By:ASP.NET
Http Response
  • Request URL: 為browser 網址列上的URL,對於駭客來說,主要看的是參數的傳遞。如果是 HTTP Get ,參數會在 URL 中被傳遞。例如: www.url.com/query=abc。如果是 HTTP Post,參數的傳遞會被封裝在 HTTP message body 中。
  • User-Agent: 用來告訴網站browser的類型。IE, FireFox or Chrome. 通常駭客會修改後測試 mobile 網站。測試 Mobile 網站是否有相對的資訊安全防護。
  • Referer: 原本用來告訴網站目前網頁的來源為何。但是駭客可以運用來跳過某些邏輯檢查。例如 Forget password 程式邏輯一定要從某些頁面來才會接受。因此,駭客會就可以刻意修改 Referer的值,讓 forget password 可以跳過一些商業邏輯。
  • Http Response 的部分,主要是 Server、X-powered-By等,這些會間接告訴駭客 IIS 8.0, ASP .net 2.0.50727。因此駭客就會按圖索驥,找出已知的資訊安全風險攻擊

如何測試修改HTTP Request 

那麼要如何修改 HTTP Request來進行基本的資訊安全測試?

這邊介紹一個工具,FireFox 的一個套件 Tamper Data

該工具可以在每一次送出 http request 之前就跳出視窗問你要不要修改相關的 Http Request參數?

https://addons.mozilla.org/zh-tw/firefox/addon/tamper-data/

 

 

HTTP Method

HTTP Method 除了常見的 GET 與 Post 之外,還有 Head, options, PUT 等

一般的網站除非有特別需求,不然建議只開放 GET 與 Post。

Head , options, PUT 駭客會做什麼利用呢?

  • Head: head 只會回傳 http header 而不是整個頁面的內容。因此,駭客用來搜尋整個網站與頁面確認哪些路徑的存在與否。
  • Options: 用來列出所有該Web Server 有支援的 http method.
  • PUT: 可以用來上傳檔案。因此駭客運用 put 將惡意的程式碼上傳至 Web Server

 

總結

這篇文章介紹如何用 Browser Developer tool 觀察 http request /response

說明基本 Http headers 可能會如何被修改,

測試上可以使用 FireFox Add-on > Tamper Data

最後,介紹幾個可能會被駭客濫用的 http method (head, put, options)

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *