HTTP 請求方法 (HTTP Request Method)

駭客眼中的 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 禁止存取。

 

 

Leave a Reply

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