Burp Suite是以攔截代理的方式,通過攔截HTTP/HTTPS流量,充當瀏覽器和服務(wù)器的中間人,對數(shù)據(jù)包進行修改、重放等處理,以達到測試目的。
本文旨在介紹不同被測客戶端的代理如何配置。包括:
- Web瀏覽器
- 被測客戶端為移動端
- 被測客戶端本身不支持代理設(shè)置(例如微信PC版)
- 被測服務(wù)存在多重代理的
一、BurpSuite工作原理
二、代理設(shè)置-Web瀏覽器
BurpSuite默認代理地址和端口是127.0.0.1:8080,可以從BurpSuite的Proxy
選項卡的Options
里查看到,如下圖
正常情況下,我們使用Web瀏覽器訪問服務(wù)是直接訪問,若想對請求做攔截及篡改,就需要讓W(xué)eb瀏覽器的請求先傳往BurpSuite,在BurpSuite上進行流量數(shù)據(jù)的處理。
那么如何讓W(xué)eb瀏覽器的請求經(jīng)過BurpSuite呢?
最簡單的辦法就是將瀏覽器的代理服務(wù)器設(shè)置為BurpSuite,即默認的127.0.0.1:8080。但此舉較為繁瑣,且每次測試后還得修改回來,否則關(guān)閉BurpSuite后,會影響瀏覽器的正常使用。
這里推薦使用瀏覽器的代理插件。例如常見的Chrome、Firefox瀏覽器,推薦使用Proxy SwitchyOmega插件。
1、插件下載:https://proxy-switchyomega.com/download/
2、插件安裝(這里以Chrome為例)
將已下載下來的插件解壓到文件夾
在Chrome地址欄輸入chrome://extensions/
回車打開擴展程序
點擊加載已解壓的擴展程序
,選中步驟一的文件夾即可
3、插件配置
新建一個情景模式,并將代理服務(wù)器設(shè)置為BurpSuite中設(shè)置的代理地址及端口并應(yīng)用保存
4、插件啟用
點擊瀏覽器右上角Proxy SwitchyOmega
插件按鈕,選擇對應(yīng)的情景模式,在該頁面輸入要訪問的URL后,此時的請求流量即會通過BurpSuite
5、常見問題-首次抓取HTTPS時,瀏覽器會報安全問題
解決方案:
- 打開瀏覽器,并啟動BurpSuite代理后,在地址欄訪問
http://burp
- 點擊右上角的
CA Certificate
按鈕,將證書文件下載下來 - 打開下載下來的證書文件,點擊
安裝證書
,根據(jù)提示進行安裝 - 需要注意的是,證書存儲需選擇存儲在
受信任的根證書頒發(fā)機構(gòu)
- 證書安裝完后,再訪問HTTPS鏈接就不會報安全問題了(需注意重啟瀏覽器才能生效)
三、代理設(shè)置-被測客戶端為移動端
有的時候,我們需要對移動端APP進行滲透測試,那么該如何配置呢?
- 在 BurpSuite 的 Proxy Listeners 中,選中當前在用的代理,點擊左側(cè)的 Edit 按鈕,在彈出的對話框中,將 Bind to address 選項設(shè)置為
All interfaces
。 - 將手機與PC連接同一WiFi,打開手機WiFi設(shè)置,設(shè)置HTTP代理服務(wù)器BurpSuite 所在的 PC 的 IP 地址,端口為 BurpSuite 的代理端口。以 iPhone 為例,其設(shè)置如下圖所示
- 如果移動端APP走的是HTTPS通道,則也需要安裝證書,解決方式同Web瀏覽器
四、代理設(shè)置-被測客戶端不支持代理設(shè)置
當我們需要測試的對象是PC客戶端,且該客戶端不支持代理設(shè)置時,要如何解決呢?
方案一:直接設(shè)置系統(tǒng)代理,所有流量都會經(jīng)過BurpSuite;設(shè)置方法最為簡單,但缺點也顯而易見,除了會導(dǎo)致記錄的請求過多影響測試外,還會影響其他非測試應(yīng)用的使用。
方案二:通過Proxifier工具設(shè)置,Proxifier是一款功能非常強大的socks5客戶端,可以為本身不支持設(shè)置代理的軟件設(shè)置HTTPS或SOCKS代理/代理鏈。
Proxifier支持Xp/Vista/Win7/Win10、MAC OS ,支持socks4,socks5,http代理協(xié)議,支持TCP,UDP協(xié)議,可以指定端口,指定IP,指定域名,指定程序等運行模式,兼容性非常好。
設(shè)置方法如下:
1、代理服務(wù)器設(shè)置
-
點擊 Proxy Servers按鈕,打開對話框,點擊Add按鈕,添加代理服務(wù)器配置。
Address和Port填BurpSuite的代理,也就是
127.0.0.1:8080
Protocol 選擇HTTPS
Advanced 高級設(shè)置項里可以給該代理自定義一個標簽名用于區(qū)分 -
點擊Check按鈕測試代理設(shè)置是否成功,如成功,則會顯示Proxy is ready to work with Proxifier!
-
啟用代理規(guī)則;點擊Proxification Rules按鈕,打開對話框;默認有2條直連的規(guī)則,點擊左下方的Add按鈕,進入具體規(guī)則設(shè)置頁面
設(shè)置內(nèi)容:Name :任意填寫
Applications:設(shè)置需要走代理的應(yīng)用,也就是待測應(yīng)用
Target hosts:設(shè)置訪問哪些網(wǎng)站走代理,根據(jù)實際情況填寫
Target ports:設(shè)置訪問目標網(wǎng)站的哪些端口才走代理,根據(jù)實際情況填寫即可
Action:這里選擇上一步設(shè)置的代理服務(wù)器即可。
規(guī)則設(shè)置好之后,可更改規(guī)則的順序。和 BurpSuite的 Upstream Proxy Servers 一樣,越靠前的規(guī)則會優(yōu)先被命中。
一切設(shè)置就緒后點擊 OK 按鈕保存。此時BurpSuite 就能夠抓取到來自被測應(yīng)用的HTTP 報文了(如上圖設(shè)的是微信,那么在微信里的HTTP請求就均會通過BurpSuite代理)。同時,在 Proxifier 中也能夠看到連接狀態(tài)與日志。
2、代理鏈設(shè)置
如果請求需要經(jīng)過多個代理,Proxifier 也支持代理鏈的設(shè)置。
-
添加多個代理服務(wù)器,然后點擊按鈕Proxy Chains展開代理鏈設(shè)置
-
點擊Create按鈕,添加代理鏈,然后將代理服務(wù)器按數(shù)據(jù)量順序依次拖入代理鏈中
-
點擊Type按鈕,或者雙擊代理鏈名稱可進行代理鏈類型設(shè)置
Simple Chain:簡單類型,請求數(shù)據(jù)從上到下依次經(jīng)過各代理服務(wù)器
Redundancy:冗余類型,若第一個代理服務(wù)器無法連接,則嘗試第二個,以此類推
Load Balancing:負載均衡類型,請求數(shù)據(jù)會隨機地發(fā)送到列表中的各個代理服務(wù)器 -
設(shè)置完后在Proxification Rules里,把規(guī)則的Action改成選擇代理鏈即可
最后,BurpSuite里的Upstream Proxy Servers 和 SOCKS Proxy其實已經(jīng)可以解決被測服務(wù)存在多重代理的問題,所以可以不需要在Proxifier里設(shè)置。
至于什么是多重代理,在BurpSuite里又該如何設(shè)置,下文會進行介紹。
五、代理設(shè)置-被測服務(wù)存在多重代理
在某些特殊場景下,我們需要測試的網(wǎng)站本身也需要過一層代理。例如我們訪問www.baidu.com
,需要先給瀏覽器設(shè)置SS代理(127.0.0.1:6666)。
現(xiàn)在需要對www.baidu.com
進行測試,如果只是簡單的把瀏覽器代理設(shè)置為BurpSuite,雖然可以進行抓包,但www.baidu.com
走不到127.0.0.1:6666
去,測試就沒意義了。
要解決這個問題,就需要借助代理鏈。代理鏈 (Proxy Chain) 就是可以使用一個代理連接到另一個代理。
例如上面的場景,我們首先設(shè)置瀏覽器的代理為 BurpSuite;然后為 BurpSuite 再設(shè)置一個上游代理即 SS(127.0.0.1:6666)。這樣訪問 www.baidu.com
時,請求數(shù)據(jù)先經(jīng)過 BurpSuite,然后再流向SS,最后經(jīng)過 SS 服務(wù)器到達www.baidu.com
。服務(wù)器端返回的響應(yīng)則剛好相反。
BurpSuite本身支持這樣的設(shè)置。在 BurpSuite 的 User options 下的Connections 頁面中,Upstream Proxy Servers
和SOCKS Proxy
這兩個配置項,都是跟代理鏈相關(guān)的。
1、Upstream Proxy Servers設(shè)置
在該設(shè)置項中,支持多個上游代理服務(wù)器規(guī)則。也就是說可以同時配置多個 Upstream Proxy Servers,在使用過程中,BurpSuite 會按順序?qū)⒄埱蟮闹鳈C與 Destination host 中設(shè)置的內(nèi)容進行比較,并將請求內(nèi)容發(fā)送至第一個相匹配的代理服務(wù)器。
具體配置方法如下:
點擊Upstream Proxy Servers列表框左側(cè)的 Add 按鈕,打開 Add upstream proxy rule 對話框。這里一共有 8 個設(shè)置項,一般情況下只需關(guān)注前4 個:
Destination host:填入目標網(wǎng)站域名或者IP,支持通配符。在本例中我們可以填入 *.baidu.com。
Proxy host:填入SS代理服務(wù)器的IP地址,即 127.0.0.1;若為空表示直接連接。
Proxy port:填入 SS 的代理地址,即 6666。
Authentication type:這里選擇認證類型,由于 SS 本地代理無需認證,這是選擇None。
如果 Authentication type 為 None,則接下來的 4 項內(nèi)容無需理會,否則需要根據(jù)實際情況設(shè)置以下 4 項內(nèi)容。
Username:用戶名。
Password:密碼。
Domain:域;僅用于 NTLM 認證類型。
Domain hostname:域主機名;僅用于 NTLM 認證類型。
設(shè)置內(nèi)容如下圖所示,最后點擊 OK 即可。
這時候你會發(fā)現(xiàn)www.baidu.com
已經(jīng)能夠訪問了,并且 BurpSuite 中也成功地抓取到了相應(yīng)的請求報文。
2、SOCKS Proxy設(shè)置
與 Upstream Proxy Servers 的作用類似,SOCKS Proxy 的功能也是將請求內(nèi)容發(fā)送至相應(yīng)的代理服務(wù)器。不同之處在于,SOCKS Proxy 作用于 TCP 協(xié)議層,因此如果設(shè)置了該項,那么所有的請求數(shù)據(jù)都會被發(fā)送至 SOCKS 代理服務(wù)器。
Upstream Proxy Servers作用下,只有配置的域名或IP會走到對應(yīng)的代理服務(wù)器,但SOCKS Proxy作用下,則不區(qū)分是請求哪里,均會經(jīng)過對應(yīng)的代理服務(wù)器。
所以如果同時設(shè)置了 Upstream Proxy Servers 和 SOCKS Proxy,則所有請求都會經(jīng)過 SOCKS Proxy配置的代理服務(wù)器發(fā)送,Upstream Proxy Servers此時就不起作用了。
SOCKS Proxy設(shè)置方法如下:
先在下方的輸入框中依次填入 SOCKS 代理服務(wù)器的 IP、端口(如果 SOCKS 代理服務(wù)器需要認證,還需要填寫用戶名和密碼),然后勾選 Use SOCKS proxy 即可。文章來源:http://www.zghlxwxcb.cn/news/detail-408267.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-408267.html
到了這里,關(guān)于BurpSuite-代理和瀏覽器設(shè)置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!