在Web滲透測試過程中,BurpSuite是不可或缺的神器之一。
BurpSuite的核心是代理Proxy,通常情況下使用BurpSuite的套路是:瀏覽器設置BurpSuite代理——>訪問Web應用程序——>BurpSuite抓包分析。
今天就寫一些不一樣的,給BurpSuit設置非本地的網絡代理
0x01 一般情況
最一般的情形是針對采用HTTP協議的Web應用程序的滲透測試。這種情況下,直接設置瀏覽器的代理服務器為BurpSuite即可,默認為127.0.0.1:8080。

當然,直接更改瀏覽器的代理服務器設置比較繁瑣,更好的辦法是使用瀏覽器插件,預先設置好代理方案,然后根據實際情況一鍵切換。Chrome推薦使用Proxy SwitchyOmega插件:

0x02 移動端流量抓取
有時候,我們還需要對移動APP進行抓包分析,這時候該怎么辦?
其實很簡單,兩步即可解決。
第一步,在BurpSuite的Proxy Listeners中,選中當前在用的代理,點擊左側的Edit按鈕,在彈出的對話框中,將Bind to address選項設置為All interfaces。

第二步,手機和PC連接同一Wifi,打開手機Wifi設置,設置HTTP代理服務器為BurpSuite所在的PC的IP地址,端口為BurpSuite的代理端口。
以iPhone為例,其設置如下圖所示:

當然,如果APP走的是HTTPS通道,仍然需要安裝證書才能正常訪問,這里安裝證書的過程,我沒有寫上來,網上有很多寫得比較好的。
0x03 多重代理的情形
在某些網絡環境中,訪問目標網站需要走代理。比如說,為了訪問google.com,
我已經提前搭配好了一台M國的代理服務器
(如果不清楚怎么搭建代理服務器的話,推薦看一下我的另一篇博文:linux搭建代理服務器 https://www.cnblogs.com/-mo-/p/11251369.html)
現在我想對google.com進行滲透測試,那么該怎么設置瀏覽器代理?
這時候不能簡單的把瀏覽器代理設置為BurpSuite,這樣雖然可以進行抓包,但是沒有了M國代理服務器的幫助,我們是無法訪問google.com的,抓包也就沒有意義了。這時候該怎么辦?
在這種情況下,我們必須借助代理鏈了。
顧名思義,代理鏈就一系列的代理形成的鏈條。像剛才那種情形,我們首先設置瀏覽器的代理為BurpSuite以便能夠抓包;然后為BurpSuite再設置一個上游代理即M國的代理服務器。
這樣訪問google.com時,請求數據先經過BurpSuite,於是可以進行抓包了;然后再流向M國的代理服務器,最后經過本地服務器到達google.com。
服務器端返回的響應則剛好相反。通過這個BurpSuite ==> M國代理服務器的代理鏈,我們就解決了本節開頭所描述的問題。
作為一個神器,BurpSuite是具備這個功能的。
在BurpSuite的User options下的Connections頁面中,有『Upstream Proxy Servers』和『SOCKS Proxy』這兩個配置項,都是跟代理鏈相關的。接下來逐一進行說明。

3.1 Upstream Proxy Servers
在該設置項中,可以設置多個上游代理服務器規則,滿足規則的請求將被發送至相應的代理服務器。只說概念過於無聊,這里就以chaipip.com(一個查詢IP地址的網址)為例,進行說明。
為了對chaipip.com進行抓包分析,我們首先要設置瀏覽器的代理為BurpSuite,這一點是毫無疑問的。
為了能夠通過代理訪問chaipip.com,還需要設置BurpSuite的上流代理為(113.121.20.183:9999)(這個上流代理也就是上文所說的那台代理服務器的IP及端口)
點擊Upstream Proxy Servers列表框左側的Add按鈕,打開『Edit upstream proxy rule』對話框。
這里一共有8個設置項,一般情況下只需關注前4個:
-
Destination host:這里填入目標網站域名或者IP,支持通配符
(*表示0個或者任意個字符,?表示除點號之外的任意一個字符)。在本例中,我們可以填入*.chaipip.com。 -
Proxy host:填入代理服務器的IP地址,即113.121.20.183。如果為空表示直接連接。
-
Proxy port:填入的代理地址,即9999。
-
Authentication type:這里選擇認證類型,由於這是免費使用的一個代理,無需認證,這是選擇None。如果Authentication type為None,則接下來的4項內容無需理會,否則需要根據實際情況設置以下4項內容。
-
Username:用戶名。
-
Password:密碼。
-
Domain:域。僅用於NTLM認證類型。
-
Domain hostname:域主機名。僅用於NTLM認證類型。
設置內容如下圖所示,最后點擊OK即可。

這時候,你通過瀏覽器使用的本地代理選項,會發現chaipip.com所顯示你的IP為剛剛設置的代理服務器的IP,並且BurpSuite中也成功地抓取到了相應的請求報文。



你可以同時設置多個Upstream Proxy Servers,在使用過程中,BurpSuite會按順序將請求的主機與Destination host中設置的內容進行比較,並將請求內容發送至第一個相匹配的Proxy server。
因此,Proxy Server的順序很重要,講究個先來后到!
3.2 SOCKS Proxy
與Upstream Proxy Servers的作用類似,SOCKS Proxy的功能也是將請求內容發送至相應的代理服務器。不同之處在於,SOCKS Proxy作用於TCP協議層,因此如果設置了該項,那么所有的請求數據都會被發送至SOCKS代理服務器。所以,SOCKS Proxy的設置更簡單。同樣以免費的代理服務器為例,先在下方的輸入框中依次填入SOCKS代理服務器的IP、端口(如果SOCKS代理服務器需要認證,還需要填寫用戶名和密碼),然后勾選Use SOCKS proxy即可。

需要注意的一點是,如果同時設置了Upstream Proxy Servers和SOCKS Proxy,則根據規則應該發送至上游代理的請求將會通過SOCKS Proxy發送。
