我們之前學會了如何使用 Burp Suite 的 Proxy 功能來攔截流量。但你是否曾想過:為什麼瀏覽器願意把流量都交給 Burp Suite?『攔截』到底是怎麼發生的?
今天,我們不專注於操作,而是要成為一個「網路魔術師」,揭開魔術背後的秘密。徹底理解這些基礎原理,將能讓你在遇到各種複雜情境時,都能舉一反三,而不只是死記操作步驟。
你想寫信給一位國外的筆友,但擔心自己的外文不夠好,寫錯意思。
沒有代理:
你 --(寫中文信)--> 郵局 --(寄出)--> 國外筆友
有代理:
你 --(寫中文信)--> 翻譯秘書 --(翻譯成外文信)--> 郵局 --(寄出)--> 國外筆友
國外筆友 --(回外文信)--> 郵局 --(寄回)--> 翻譯秘書 --(翻譯成中文)--> 你
在這個比喻中,「翻譯秘書」就是「代理伺服器」。你的所有信件都必須先經過他,由他處理後再轉發出去;所有回信也必須先由他處理後再交還給你。
代理伺服器 是位於客戶端(如你的瀏覽器)和目標伺服器(如 Google)之間的一個中間伺服器。它代表客戶端向目標伺服器發起請求,並將回應返回給客戶端。
Burp Suite 的代理模式是如何設定的?
要讓「翻譯秘書」生效,你必須主動把信件都交給他處理。同理,要讓瀏覽器使用 Burp Suite 作為代理,你必須明確告訴瀏覽器:「請把所有的網路請求都發送到 127.0.0.1:8080」。
127.0.0.1 是什麼?
這是一個特殊的 IP 地址,稱為 本地回環地址,它指的就是「你這台電腦本身」。
localhost 這個網域名稱通常也指向 127.0.0.1。
8080 是什麼?
這是一個 埠號。你可以把電腦想像成一棟大樓,IP 地址是門牌號碼,而埠號就是大樓內每個房間的號碼。
Burp Suite 啟動後,就像在這棟大樓(你的電腦)的 8080 號房間開了一個「代理服務接待處」,專門等待瀏覽器的來訪。
這是最關鍵的部分。Burp Suite 的「攔截」功能,就像是那位翻譯秘書在收到你的信後,並不馬上翻譯寄出,而是先按下「暫停鍵」,打電話問你:「老闆,這封信我現在要寄出嗎?還是你想修改一下內容?」
詳細攔截流程:
發起請求: 你在瀏覽器輸入網址,按下 Enter。
轉向代理: 瀏覽器根據設定,將請求發送到 127.0.0.1:8080(即 Burp Suite)。
攔截開啟: 如果 Burp Suite 的 Proxy -> Intercept 開關是 on,它會攔截下這個請求,並將其暫存在記憶體中。
等待指令: 此時,請求暫停在 Burp Suite 內,無法繼續前進。瀏覽器會顯示「等待中」或「連線中」的狀態。
分析與修改: 你可以在 Burp Suite 的介面上看到完整的請求內容,並隨意修改。
做出決定:
Forward(轉發): 你點下這個按鈕,表示「沒問題,寄出吧!」Burp Suite 會將(可能已被修改的)請求發送給目標網站。
Drop(丟棄): 你點下這個按鈕,表示「這封信算了,扔掉吧!」Burp Suite 會丟棄這個請求,瀏覽器最終會收到一個錯誤(因為請求根本沒送達伺服器)。
接收回應: 當你轉發請求後,目標網站的回應同樣會先流經 Burp Suite。如果此時攔截功能依然開啟,你也可以選擇攔截並修改回應,再傳回給瀏覽器。
下期將教大家如何實際操作攔截自由控制想收放的網站內容