8.4 Burp Proxy 選項
此選項卡包含代理偵聽器的Burp代理設置,攔截HTTP請求和響應,攔截WebSocket消息,響應修改,匹配和替換TLS直通以及其他選項。
代理偵聽器
代理偵聽器是本地HTTP代理服務器,用于偵聽來自瀏覽器的傳入連接。它使您能夠監視和攔截所有請求和響應,并且是Burp 用戶驅動的工作流程的核心。默認情況下,Burp在回送接口的端口8080上創建一個偵聽器。要使用此偵聽器,您需要將瀏覽器配置為使用127.0.0.1:8080作為其代理服務器。測試幾乎所有基于瀏覽器的Web應用程序都需要此默認偵聽器。
Burp使您可以創建多個代理偵聽器,并提供了大量配置選項來控制其行為。在測試異常應用程序或與某些非基于瀏覽器的HTTP客戶端一起使用時,有時可能需要使用這些選項。
Binding
這些設置控制Burp如何將代理偵聽器綁定到本地網絡接口:
- 綁定到端口 -這是本地接口上的端口,將打開以監聽傳入的連接。您將需要使用未被另一個應用程序綁定的空閑端口。
- 綁定到地址 -這是Burp將綁定到的本地接口的IP地址。您可以僅綁定到回送接口,也可以綁定到所有接口,也可以綁定到任何特定的本地IP地址。
注意:如果偵聽器綁定到所有接口或特定的非環回接口,則其他計算機可能能夠連接到偵聽器。
要求處理
這些設置包括用于控制Burp是否重定向此偵聽器收到的請求的選項:
- 重定向到主機 -如果配置了此選項,則Burp會將每個請求轉發到指定的主機,而不考慮瀏覽器請求的目標。請注意,如果您使用此選項,則如果您要將請求重定向到的服務器期望的主機標頭與瀏覽器發送的主機標頭不同,則可能有必要配置匹配/替換規則以重寫請求中的主機標頭。
- 重定向到端口 -如果配置了此選項,則Burp會將每個請求轉發到指定的端口,而不考慮瀏覽器請求的目標。
- 強制使用TLS-如果配置了此選項,則Burp將在所有傳出連接中使用HTTPS,即使傳入請求使用的是純HTTP。您可以將此選項與TLS相關的響應修改選項一起使用,以使用Burp進行類似sslstrip的攻擊,在這種攻擊中,強制實施HTTPS的應用程序可以降級為不經意地代理了流量的受害用戶的HTTP。通過打p。
請注意,每個重定向選項都可以單獨使用。因此,例如,您可以將所有請求重定向到特定主機,同時保留每個原始請求中使用的原始端口和協議。
Burp對不可見代理的支持使非代理意識的客戶端直接連接到偵聽器。
證書
這些設置控制提供給TLS客戶端的服務器TLS證書。使用這些選項可以解決使用攔截代理時出現的一些TLS問題:
- 您可以消除瀏覽器中的TLS警報,也無需創建TLS例外。
- 在網頁從其他域加載受TLS保護的項目的情況下,您可以確保這些內容已由瀏覽器正確加載,而無需首先為每個參考域手動接受代理的TLS證書。
- 如果接收到無效的TLS證書,則可以使用拒絕連接到服務器的胖客戶端應用程序。
提供以下選項:
- 使用自簽名證書 -向您的瀏覽器提供一個簡單的自簽名TLS證書,它始終會導致TLS警報。
- 生成CA簽名的每主機證書 -這是默認選項。安裝后,Burp將創建一個唯一的,自簽名的證書頒發機構(CA)證書,并將其存儲在您的計算機上以供每次運行Burp時使用。當您的瀏覽器與給定主機建立TLS連接時,Burp會為該主機生成TLS證書,并由CA證書簽名。您可以在瀏覽器中將Burp的CA證書安裝為受信任的根,這樣就可以接受每個主機的證書而不會發出任何警報。您還可以導出CA證書以在其他工具或Burp的其他實例中使用。
- 生成具有特定主機名的CA簽名證書 -這類似于前面的選項;但是,Burp將使用您指定的主機名生成一個主機證書,用于每個TLS連接。在執行隱形代理時,有時此選項是必需的,因為客戶端不會發送CONNECT請求,因此Burp在TLS協商之前無法識別所需的主機名。和以前一樣,您可以將Burp的CA證書安裝為受信任的根。
- 使用自定義證書 -使用此選項,您可以加載特定證書(以PKCS#12格式)以呈現給瀏覽器。如果應用程序使用需要特定服務器證書(例如具有給定的序列號或證書鏈)的客戶端,則應使用此選項。
導出和導入CA證書
您可以導出特定于安裝的CA證書以在其他工具或Burp的其他實例中使用,并且可以導入證書以在Burp的當前實例中使用。單擊“導入/導出CA證書”按鈕以執行此操作。
您可以選擇僅導出證書(以導入到瀏覽器或其他設備的信任庫中),也可以同時導出證書及其私鑰。
注意:請勿將證書的私鑰透露給任何不受信任的一方。即使您沒有使用Burp,擁有您的證書和密鑰的惡意攻擊者也可能能夠攔截瀏覽器的HTTPS通信。
您也只能通過在瀏覽器中訪問http:// burp / cert來導出證書。這與Burp發出HTTPS請求時向瀏覽器提供的證書相同,但是在某些移動設備上安裝時,可以通過URL下載該證書的功能非常有用。
如果要生成新的CA證書,可以通過單擊“重新生成CA證書”按鈕來完成。您將需要重新啟動Burp才能使更改生效,然后在瀏覽器中安裝新證書。
創建自定義CA證書
您可以使用以下OpenSSL命令使用您自己的詳細信息(例如CA名稱)創建自定義CA證書:
openssl req -x509 -days 730 -nodes -newkey rsa:2048 -outform der -keyout server.key -out ca.der
[OpenSSL將提示您輸入證書的各種詳細信息。確保為所有提示的項目輸入合適的值。
openssl rsa -in server.key -inform pem -out server.key.der -outform der
openssl pkcs8 -topk8 -in server.key.der -inform der -out server.key.pkcs8.der -outform der -nocrypt
然后單擊Burp中的“導入/導出CA證書”按鈕,然后選擇“證書和DER格式的密鑰”。選擇ca.der作為證書文件和server.key.pkcs8.der作為密鑰文件。然后,Burp將加載自定義CA證書,并開始使用它來生成每個主機的證書。
TLS協議
這些設置控制Burp與瀏覽器執行TLS協商時將使用的TLS協議。您可以將Burp配置為使用Java安裝的默認協議,或者覆蓋這些默認值并根據需要啟用自定義協議。
攔截HTTP請求和響應
這些設置控制哪些請求和響應停頓以在“ 攔截”選項卡中進行查看和編輯。單獨的設置應用于請求和響應。
“攔截”復選框確定是否攔截任何消息。如果選中,則Burp將配置的規則應用于每條消息,以確定是否應攔截它。
可以使用每個規則左側的復選框來激活或停用單個規則。可以使用按鈕添加,編輯,刪除或重新排列規則。
可以在郵件的幾乎任何屬性上配置規則,包括域名,IP地址,協議,HTTP方法,URL,文件擴展名,參數,Cookie,標頭/正文內容,狀態碼,MIME類型,HTML頁面標題和代理偵聽器端口。您可以將規則配置為僅攔截目標范圍內的URL的項目。正則表達式可用于為每個屬性定義復雜的匹配條件。
規則按順序處理,并使用布爾運算符AND和OR進行組合。這些通過簡單的“從左到右”邏輯進行處理,其中每個運算符的范圍如下:
(cumulative result of all prior rules) AND/OR (result of current rule)
在每條消息上都會處理所有活動規則,應用最終活動規則后的結果將確定該消息是在后臺被攔截還是轉發。
“自動更新Content-Length”復選框可控制Burp在用戶修改了消息的Content-Length標頭后是否自動更新該消息。修改HTTP正文后,通常必須使用此選項。
對于請求,有一個選項可以在請求結束時自動修復丟失或多余的新行。如果已編輯的請求的標題后沒有空白行,則Burp會添加此行。如果帶有正文的包含URL編碼參數的已編輯請求在正文末尾包含任何換行符,則Burp將刪除這些字符。該選項對于糾正在攔截視圖中手動編輯請求時所犯的錯誤很有用,以避免向服務器發出無效的請求。
攔截WebSocket消息
使用這些設置可以控制哪些WebSocket消息停頓以在“攔截”選項卡中進行查看和編輯。
您可以分別配置是否攔截傳出(客戶端到服務器)消息和傳入(服務器到客戶端)消息。
響應修改
這些設置用于執行響應的自動修改。您可以使用這些選項通過自動重寫應用程序響應中的HTML來完成各種任務。
以下選項可能對刪除客戶端對數據的控制很有用:
- 取消隱藏隱藏的表單字段。(有一個子選項可以在屏幕上突出顯示未隱藏的字段,以便于識別。)
- 啟用禁用的表單字段
- 刪除輸入字段長度限制
- 刪除JavaScript表單驗證
以下選項對于出于測試目的禁用客戶端邏輯可能很有用(請注意,這些功能并非旨在以NoScript的方式用作安全防護):
- 刪除所有JavaScript
- 移除
<object>標簽
以下選項可用于向受害用戶傳遞類似sslstrip的攻擊,這些受害用戶不經意間通過Burp代理了流量。您可以將它們與listener選項結合使用,以強制傳出請求中的TLS有效地從用戶連接中剝離TLS:
- 將HTTPS鏈接轉換為HTTP
- 從Cookie中刪除安全標志
匹配并替換
這些設置用于自動替換通過代理傳遞的部分請求和響應。對于每個HTTP消息,依次執行啟用的匹配和替換規則,并進行所有適用的替換。
可以分別為請求和響應,消息標題和正文(特別是僅針對請求的第一行)定義規則。每個規則可以指定要匹配的文字字符串或正則表達式模式,以及用來替換的字符串。
對于郵件標題,如果匹配條件與整個標題匹配,并且替換字符串保留為空白,則刪除標題。如果指定了空白的匹配表達式,則替換字符串將作為新標題添加。
有多種默認規則可用于協助執行常見任務-默認情況下將禁用這些規則。
匹配多行區域
您可以使用標準的正則表達式語法來匹配郵件正文的多行區域。例如,如果響應主體僅包含:
Now is the time for all good men to come to the aid of the party
然后使用正則表達式:
Now.*the
將匹配:
Now is the time for all good men to come to the aid of the
如果只想在一行中匹配,則可以將正則表達式修改為:
Now[^\n]*the
將會匹配:
Now is the
在反向引用和替換字符串中使用正則表達式組
可以使用括號在匹配表達式中定義組,并按從左到右的順序分配一個1索引的參考號(組0代表整個匹配項)。
可以使用反斜杠后跟組的索引在同一匹配器表達式中對組進行反向引用。例如,要匹配一對開始標簽和結束標簽,而沒有其他標簽,則可以使用正則表達式:
<([^/]\w*)[^>]*>[^>]*?</\1[^>]*>
在替換字符串中,可以使用$后跟組索引來引用組。因此,以下替換字符串將包含在上述正則表達式中匹配的標簽的名稱:
Replaced: $1
TLS通過
這些設置用于指定Burp將直接通過TLS連接傳遞的目標Web服務器。在代理攔截視圖或歷史記錄中,將不會提供有關通過這些連接發出的請求或響應的詳細信息。
在無法輕松消除客戶端上的TLS錯誤的情況下(例如,在執行TLS證書固定的移動應用程序中),通過TLS連接進行傳遞非常有用。如果應用程序訪問多個域,或者使用HTTP和HTTPS連接的混合,那么通過TLS連接傳遞到特定的有問題的主機仍然可以使您以常規方式使用Burp處理其他流量。
如果啟用了在客戶端TLS協商失敗時自動添加條目的選項,則Burp將檢測客戶端何時TLS協商失敗(例如,由于無法識別Burp的CA證書),并將自動將相關服務器添加到TLS傳遞中通過列表。
雜項
這些設置控制Burp Proxy行為的一些特定細節。提供以下選項:
- 在對服務器的請求中使用HTTP / 1.0-此選項控制Burp代理是否在對目標服務器的請求中強制實施HTTP 1.0版。默認設置是使用瀏覽器使用的HTTP版本。但是,某些舊版服務器或應用程序可能需要版本1.0才能正常運行。
- 在響應客戶端時使用HTTP / 1.0-當前所有的瀏覽器都支持HTTP的1.0版和1.1版。由于版本1.0的功能集有所減少,因此強制使用版本1.0有時對于控制瀏覽器行為的各個方面非常有用,例如防止嘗試執行HTTP流水線。
- 將響應標頭設置為“連接:關閉” -在某些情況下,此選項對于防止HTTP流水線操作也很有用。
- 在傳入的請求上設置“連接:關閉” -在某些情況下,此選項在防止HTTP流水線操作中也很有用。
- 去掉傳入請求中的代理 - * 標頭 - 瀏覽器有時會發送請求標頭,其中包含要用于正在使用的代理服務器的信息。存在一些攻擊,借此惡意網站可能試圖誘使瀏覽器在這些標頭中包含敏感數據。默認情況下,Burp代理從傳入請求中剝離這些標頭,以防止任何信息泄漏。取消選中此選項將導致Burp保留這些標頭不變。
- 從傳入請求的Accept-Encoding標頭中刪除不支持的編碼 -瀏覽器通常會提供在響應中接受各種編碼的方式,例如用于內容壓縮。在Burp中處理響應時,某些編碼會引起問題。默認情況下,Burp會刪除不支持的編碼,以減少使用它們的機會。如果服務器要求支持不支持的編碼,則可能需要取消選中此選項。
- 在傳入的請求中剝離Sec-WebSocket-Extensions標頭 -瀏覽器可能會提供支持與WebSocket連接有關的各種擴展名,例如用于內容壓縮。在Burp中處理響應時,某些編碼會引起問題。默認情況下,Burp刪除此標頭以減少使用擴展名的機會。如果服務器要求使用特定的擴展名,則可能需要取消選中此選項。
- 在請求中解壓縮 GZIP /deflate -某些應用程序(通常是使用自定義客戶端組件的應用程序)會壓縮請求中的消息正文。此選項控制Burp代理是否自動解壓縮壓縮的請求主體。請注意,如果某些應用程序期望壓縮的主體并且Burp已刪除壓縮,則它們可能會中斷。
- 在響應中解壓縮GZIP /縮小-大多數瀏覽器在響應中接受GZIP壓縮后的內容。此選項控制Burp代理是否自動解壓縮壓縮的響應主體。請注意,通常可以通過從請求中刪除Accept-Encoding標頭(可能使用Burp Proxy的匹配和替換功能)來防止服務器嘗試壓縮響應。
- 在http:// burp禁用Web界面 -如果您被迫將偵聽器配置為接受不受保護的界面上的連接,并希望阻止其他人訪問Burp的瀏覽器內界面,則此選項可能很有用。
- 禁止瀏覽器中的Burp錯誤消息 -發生某些錯誤時,默認情況下Burp會向瀏覽器返回有意義的錯誤消息。如果您希望以隱身模式運行Burp,以對受害用戶進行中間人攻擊,那么抑制這些錯誤消息以掩蓋Burp的事實可能很有用。
- 不要將項目發送到代理歷史記錄或實時任務 -此選項可防止Burp將任何請求記錄到代理歷史記錄或將其發送到實時任務,例如被動爬網或實時審核。如果您將Burp Proxy用于某些特定目的(例如,對上游服務器進行身份驗證或執行匹配和替換操作)并且希望避免引起日志記錄所需的內存和存儲開銷,則這可能很有用。
- 如果超出范圍,則不要將項目發送到代理歷史記錄或實時任務 -此選項可防止Burp將任何超出范圍的請求記錄到代理歷史記錄或將其發送到實時任務,例如被動爬網或實時審核。避免積累范圍外項目的項目數據很有用。
Burp Suite中文使用教程(桌面版)
推薦文章: