• Web Security 01.10.2014

    駭客眼中的 HTTP Verb Tampering

    這篇文章主要說明 http request 發送的攻擊常見有哪些?

    一個網站會支援基本的 http request 基本的指令,常見的有 HTTP GET , HTTP Post

    駭客利用這些基本的指令就可以進行攻擊。這篇文章透過幾個簡單的例子說明。

     

    HTTP GET

    HTTP Get 用在一般網址的存取,

    例如:

    http://website.com/name=John&Book=1234

    Http GET 的情況下,參數的傳遞透過網址來達成,

    在這個例子中,傳遞兩個參數

    name = John

    Book = 1234

    因此網站收到這樣的訊息之後,根據對應的參數,給予對應的網頁資訊

     

    HTTP POST

    HTTP POST 除了網址之外,還有參數的傳遞內容

    多半發生在需要與網站後端資料庫資料更新或是執行某動作

    例如:登入、轉帳、結帳、新增資料等

    相關這些動作的參數就會用 POST 方式進行

     

    以Chrome登入 Yahoo 為例:

    F12 > Network > 找到 POST 的request > Headers > Form Data

    Form Data 就包含許多登入時會傳輸的參數,透過 Request Method: POST 進行

     

    Yahoo Login Post

     

    HTTP GET/POST 也是最常見的兩種,那麼還有其他的嗎?

    根據 HTTP 定義,其他還包含:

    • OPTIONS
    • HEAD
    • PUT
    • DELETE
    • TRACE
    • CONNECT

    多半安全性較高的網站,這些 Request Method 都被停止,

    對於瀏覽器正常瀏覽網站,也只會使用到 HTTP GET/POST

    換句話說,其他這些指令,多半是有心人士或是駭客所用

    駭客會嘗試這些指令,看看網站的反應,再決定下一步如何進行攻擊

    快取 是否可重複執行
    GET Y Y
    POST N N
    PUT N Y
    DELETE N Y

     

    最常見的是駭客利用 HEAD,

    為什麼呢? 因為 Head 會回傳網站 http header ,

    駭客可以藉此知道該網站使用的技術與版本。例如(IIS 7.0 or Apache 2.1)

    因此,除非網站執行所必需的 HTTP Request,其他的 http request method 建議 disable

     

    網站防護建議

    1.Disable 不需要的 Request Method

    建議只留下需要的 HTTP Request method

    • HTTP GET
    • HTTP Post

    哪些是不需要的呢?

    • OPTIONS
    • HEAD
    • PUT
    • DELETE
    • TRACE
    • CONNECT

    2. 防火牆

    防火牆會針對所傳送的 http communication 檢查

    對於不常見的 http request 發出警告,

    對於大量而且密集的 HTTP Head 可進一步將該連線中斷或是將該 IP 禁止存取。

     

     

    Posted by Tony @ 12:47 pm

    Tags: , , , , ,

  • Leave a Reply

    Your email address will not be published.