跳至主要內容

競爭條件與請求走私 ​

競爭條件/請求走私提供兩種專用工具,用於對時間敏感的攻擊與通訊協定層級的 HTTP 攻擊。

競爭條件 ​

競爭分頁會同時向相同端點傳送同一請求的多份副本,讓你比較各次平行執行的回應與耗時。

適用時機 ​

  • TOCTOU(檢查時間 / 使用時間):測試並行請求是否能將檢查與狀態變更操作分離。
  • 帳戶操作:並行傳送餘額變更、優惠券兌換或受限額約束的操作,測試是否存在重複花費或超額兌換。
  • 投票或速率限制繞過:確認每位使用者的限制是否以不可分割的方式執行。

執行競爭測試 ​

  1. 在競爭分頁建立目標請求,或將目標請求傳送至該分頁。
  2. 設定並行數值,也就是要平行傳送的副本數量。
  3. 點選發送按鈕(按鈕文字會顯示請求數量)。所有副本會盡可能同時傳送。
  4. 檢視回應表格中每份副本的狀態碼、本文與經過時間。
  5. 回應之間的差異(不同狀態碼、不同回應本文、第 2 份及後續副本意外成功)表示存在競爭時間窗。

HTTP/2 單一封包競爭 ​

目標支援 HTTP/2 時,啟用 H2 單封包模式。HTTP/2 在同一連線上多工處理所有平行請求,消除網路抖動,使請求同時抵達伺服器更可靠。

HTTP 請求走私 ​

請求走私分頁測試伺服器如何處理含義不明確的 Content-Length 與 Transfer-Encoding 標頭,以偵測前端 / 後端不同步。

背景 ​

當反向 Proxy 與後端伺服器對一個請求在哪裡結束、下一個請求在哪裡開始的判斷不一致時,請求 A 中走私的前置內容可能被加到請求 B 前面。影響涵蓋快取投毒、驗證繞過與任意請求注入。

不同步變體 ​

變體說明
CL.TE前端使用 Content-Length;後端使用 Transfer-Encoding
TE.CL前端使用 Transfer-Encoding;後端使用 Content-Length
TE.TE兩者皆使用 Transfer-Encoding,但對混淆後的標頭有不同反應

執行請求走私探測 ​

  1. 在請求走私分頁選取目標端點。
  2. 選擇要測試的不同步變體。
  3. 點選執行請求走私探測。工具會傳送特製請求並測量回應。
  4. 序列中第二個請求逾時或出現非預期回應,表示可能存在不同步。
  5. 建立檢測發現前請手動確認;若網路狀況造成與探測無關的逾時,也可能產生誤判。

專有軟體。保留所有權利。