# HTTP request smuggling Lab5 本題有前端和後端兩台伺服器,前端伺服器不支援 chunked encoding,`/admin`是管理員頁面,但只有 IP 是 127.0.0.1 才能存取,前端伺服器會在進來的 Request 加一個 HTTP Header,裡面放客戶端的 IP,類似 X-Forwarded-For 但名稱不一樣。 重點: - 利用 Request Smuggling 技術,讓後端伺服器回傳前端伺服器加的那個 IP Header 名稱。 - 再用 Request Smuggling 送一個包含那個 Header、模擬來自 127.0.0.1 的請求,存取 `/admin` 並刪除用戶 carlos。 所以一樣先進入網站。 ![image](https://hackmd.io/_uploads/H1He37LPgl.png) 本題跟之前一樣直接進去 `admin` 是不行的,但發現有一個 seach 欄位,或許是新的注入欄位,這裡一樣先攔截請求。 ![image](https://hackmd.io/_uploads/BJtun7Uwle.png) 所以一樣寫 chunk 內容,並在 seach 欄位中隨意輸入。 ![image](https://hackmd.io/_uploads/S1JJpm8Pgl.png) 會發現他在回應中確實出現題目說到的**類似 X-Forwarded-For 但名稱不一樣**之資訊。 ![image](https://hackmd.io/_uploads/H1Tg1VIPxe.png) 因此我們在請求中嘗試加上 `X-hqmfOO-Ip: 127.0.0.1` 看看。 ![image](https://hackmd.io/_uploads/SJVEJ4UPge.png) ![image](https://hackmd.io/_uploads/HyGHy4UDxe.png) 成功了,所以接著是砍掉目標使用者。 ![image](https://hackmd.io/_uploads/ryeiJEUDgl.png) ![image](https://hackmd.io/_uploads/r1AiyN8Plg.png) ![image](https://hackmd.io/_uploads/r133J4Ivgx.png) ---