今天,我們將進行一個最純粹的攔截練習。我們的目標是:在瀏覽器加載 Google 首頁的過程中,用 Burp Suite 攔截這個請求,並觀察它。這能讓你最直觀地感受到,你的所有網路活動,確實都經過了 Burp Suite 這個「中間人」。
啟動 Burp Suite。
進入 Proxy 頁籤,然後進入 Intercept 子頁籤。
確認攔截開關是 Intercept is on 的狀態。
在 google瀏覽器中,於網址列輸入 https://www.google.com,然後按下 Enter。
此時,瀏覽器畫面會卡住,顯示「正在建立安全連線...」或「等待中...」。
同時,你會立刻在 Burp Suite 的 Intercept 頁籤中看到一個被暫停的請求。
這個請求看起來會像這樣:
點擊 Forward 按鈕。你可能需要點擊 多次,因為加載一個現代網頁通常需要發起數十個請求(來載入圖片、CSS、JavaScript 等)。
每次點擊 Forward,你都放行了一個請求(例如:對 www.google.com 的請求、對 google.tw 的請求、對 gstatic.com 載入圖示的請求等等)。
持續點擊,直到瀏覽器中的 Google 首頁完全加載完畢。
在歷史紀錄中回顧:
現在,切換到 Proxy -> HTTP history 頁籤。
你會看到一個長長的列表,記錄了剛才加載 Google 首頁所發出的所有請求。你可以點擊任何一條記錄,在下方的「Request」和「Response」視窗中查看詳細內容。
當你在瀏覽器中進行 Google 搜尋時,一個被 Burp Suite 攔截下來的 HTTP/2 請求看起來會像下面這樣。
此範例中的所有識別碼、Cookie 和個人化參數均已替換為虛構數據,僅用於教學展示。
請求行
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 連接。