iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
Security

30天資安啟航:從入門到實戰系列 第 19

Day19: 實戰演練:親手攔截HTTP 請求

  • 分享至 

  • xImage
  •  

今天,我們將進行一個最純粹的攔截練習。我們的目標是:在瀏覽器加載 Google 首頁的過程中,用 Burp Suite 攔截這個請求,並觀察它。這能讓你最直觀地感受到,你的所有網路活動,確實都經過了 Burp Suite 這個「中間人」。

啟動 Burp Suite。
進入 Proxy 頁籤,然後進入 Intercept 子頁籤。
確認攔截開關是 Intercept is on 的狀態。
https://ithelp.ithome.com.tw/upload/images/20250929/20178715nvIiLTruWo.png
在 google瀏覽器中,於網址列輸入 https://www.google.com,然後按下 Enter。

此時,瀏覽器畫面會卡住,顯示「正在建立安全連線...」或「等待中...」。
同時,你會立刻在 Burp Suite 的 Intercept 頁籤中看到一個被暫停的請求。
這個請求看起來會像這樣:
https://ithelp.ithome.com.tw/upload/images/20250929/20178715hSZnSteDi4.png
點擊 Forward 按鈕。你可能需要點擊 多次,因為加載一個現代網頁通常需要發起數十個請求(來載入圖片、CSS、JavaScript 等)。
每次點擊 Forward,你都放行了一個請求(例如:對 www.google.com 的請求、對 google.tw 的請求、對 gstatic.com 載入圖示的請求等等)。
持續點擊,直到瀏覽器中的 Google 首頁完全加載完畢。
在歷史紀錄中回顧:
現在,切換到 Proxy -> HTTP history 頁籤。
你會看到一個長長的列表,記錄了剛才加載 Google 首頁所發出的所有請求。你可以點擊任何一條記錄,在下方的「Request」和「Response」視窗中查看詳細內容。
當你在瀏覽器中進行 Google 搜尋時,一個被 Burp Suite 攔截下來的 HTTP/2 請求看起來會像下面這樣。
此範例中的所有識別碼、Cookie 和個人化參數均已替換為虛構數據,僅用於教學展示。

https://ithelp.ithome.com.tw/upload/images/20250929/20178715IcQr8lRFHs.png

請求行
GET HTTP 方法。表示這個請求的目的是從伺服器「取得」資料。不同的方法(POST, PUT, DELETE)對應不同的操作,測試時需針對不同方法設計攻擊。

/search? 表示請求的是伺服器的 /search 這個端點(功能)。這是攻擊的直接目標,識別應用程式的功能點(例如:搜尋、登入、查詢)。

q=burpsuite+tutorial查詢字串參數。這是 URL 問號(?)後面的鍵值對,以 & 分隔。q 是核心參數,代表搜尋關鍵字。主要的攻擊面! 駭客會嘗試對這些參數進行 SQL 注入、XSS、命令注入等攻擊。

rlz, oq, gs_lcrp 其他參數。通常是瀏覽器自動添加,用於記錄來源、原始查詢、自動完成等資訊。 可能洩漏使用者行為軌跡,有時修改這些參數會導致不同的伺服器行為。

sourceid=chrome 標明請求來源是 Chrome 瀏覽器。 有助於伺服器進行使用者分析。

ie=UTF-8 指定字符編碼。在處理特定字元集(如中文)的輸入時很重要。

HTTP/2 HTTP協定版本。現行主流的版本。

請求標頭
Host 指定要訪問的網域名稱。一個伺服器可能托管多個網站,靠此標頭來區分。是 HTTP/1.1 的必需標頭。在虛擬主機攻擊中可能被利用。
Cookie 包含網站為了識別使用者身分而設定的工作階段 Token。例如 SID, HSID, SSID 等都是 Google 的識別碼。

客戶端特徵
User-Agent 告訴伺服器你的瀏覽器種類、版本號和作業系統。
數位指紋:用於追蹤和識別使用者。
攻擊指標:攻擊者可能針對特定瀏覽器版本的已知漏洞進行攻擊。

Sec-Ch-Ua-*
用戶端提示」標頭,更結構化地提供瀏覽器、平台資訊。目的與 User-Agent 類似,但更模組化,是未來的趨勢。

Accept-Language 告訴伺服器你偏好的語言。這裡優先的是繁體中文(zh-TW)。可用於地域定位,或伺服端根據語言設定動態調整內容,可能引入邏輯漏洞。

內容協商與快取
Accept 告訴伺服器客戶端能夠處理哪些內容類型(MIME types)。理論上可被篡改,測試伺服器是否會回傳非預期的檔案類型(如 JSON、XML)。
Accept-Encoding 告訴伺服器客戶端支援哪些壓縮算法(如 gzip)。可用於「壓縮比率」攻擊,推測加密頁面的內容。
Cache-Control 指示快取機制(如瀏覽器、Proxy)該如何處理這個請求。max-age=0 表示希望取得最新內容。

安全控制
Sec-Fetch-* 這是一組現代瀏覽器發送的標頭,旨在讓伺服器了解請求的「上下文」。
Upgrade-Insecure-Requests 告訴伺服器,客戶端偏好使用 HTTPS 連接。


上一篇
Day18:深入核心:什麼是「Proxy」與「攔截」
下一篇
Day20: Burp Intruder:自動化攻擊的引擎
系列文
30天資安啟航:從入門到實戰20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言