• 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)

     

     

    Posted by Tony @ 10:39 pm

    Tags: , , ,

  • Leave a Reply

    Your email address will not be published.