Burpsuite雙層代理的抓包小技巧
0x01 前言
使用Burpsuite進行滲透測試時經常會遇到的這兩個場景:1.目標站點在國內,但測試時不想暴露自己的真實IP,或者僅允許指定的白名單IP才能訪問,2.目標站點在國外,需要翻墻后才能訪問。
如果遇到這類場景時就要用雙層代理來進行測試了,這里我只提供幾種方法,大家可自行拓展。
0x02 Burp + v2rayN
打開v2rayN客戶端,將HTTP代理模式設置為:開啟HTTP代理,并自動配置代理服務器(全局代理),然后找一個可用的代理節點來測試看下是否能夠翻墻。

自動配置代理服務器,所以無需再去手動開啟,SS/SSR默認本地端口一般為1080(SOCKS)和1081(HTTP)。
接著我們在谷歌瀏覽器用Proxy SwitchyOmega插件選擇系統代理即可,或者手動設置SOCKS/HTTP。

完成SSR-HTTP代理的設置后就可以翻墻瀏覽國外網站了,但不能同時再去設置一個Burpsuite的HTTP代理來抓取網站的數據包。
下面我們就來看一下如何設置雙層代理吧(HTTP+HTTP或SOCKS+HTTP)。
1. 上游代理
第一層代理:
跟平時設置Burpsuite代理是一樣的,打開Burpsuite->Proxy->Proxy Listeners。

谷歌瀏覽器用Proxy SwitchyOmega插件設置個一樣的代理服務器和端口即可。

第二層代理:
Burpsuite->User options->Connections->Upstream Proxy Servers->添加一條上游代理(SSR-HTTP)。
有8個設置項,只需填前4個即可,或者使用SSR-SOCKS也是可以的,最終的效果都是一樣的,就不寫了。
Destination host:目標網站域名或者IP,支持通配符,在本例中,我直接填寫*Proxy host:SSR-HTTP代理服務器的IP地址,即127.0.0.1Proxy port:SSR-HTTP的代理端口,即1081Authentication type:這里選擇認證類型,由于SSR本地代理無需認證,這是選擇None

兩層代理都設置完成后就可以用http://myip.ipip.net這個網站來抓包測試一下,看最終返回的是我們的公網IP還是SSR代理IP?如果為SSR代理IP則說明是OK的。

2. 全局代理
我們也可以用Proxifier來設置一個全局代理,這樣就無需再去設置上游代理了,可用以下多種代理方式。
本地HTTP代理(127.0.0.1:8080);SSR-HTTP代理(127.0.0.1:1081);SSR-SOCKS代理(127.0.0.1:1080);

接著再去Windows自帶的代理中設置下Burpsuite監聽的代理服務器IP和端口即可,但最好不要用谷歌插件去設置代理,因為這是全局代理,使用插件可能導致抓不到其他程序的數據包,如:公眾號。

使用谷歌瀏覽器進行抓包時千萬不要忘了在Proxy SwitchyOmega插件中選一下系統代理,下圖中可以看到已經成功的抓取到了谷歌和Youtube數據包。

注意事項:
這里簡單總結了一下,利用代理節點設置雙層代理的方式可分為3種:上游代理、SOCKS代理、全局代理。使用Proxifier進行全局代理時得自己去設置下代理規則,否則可能會產生大量垃圾數據。
全局代理這種方式不僅可以抓網站的數據,也可以抓一些C/S端軟件、移動端APP、公眾號、視頻號等數據,但是小程序好像抓不了,自己去測試一下。
0x03 Burp + SSTap
SSTap是利用虛擬網卡實現的網絡層代理,支持TCP/UDP。這種方式配置起來更簡單,只需將我們SSR節點訂閱地址放里邊更新一下,然后連接就OK了。

Windows自帶的代理中設置下Burpsuite監聽的代理服務器IP和端口即可,設置都一樣,就不再截圖了。
直接看下返回的是我們的公網IP還是SSR代理IP?OK,沒問題,就寫到這吧!

SSTap還有一個很好用的事件管理功能,能夠在觸發某事件時執行某些動作,如我們設置的這個事件:
當代理節點被斷開之后提示結束java.exe進程,這樣能避免在Burpsuite測試時暴露真實IP。

0x04 Burpsuite亂碼
響應包中如果存在中文字符時可能會出現亂碼,可通過在User Options->Display修改以下兩個選項來解決。
1.修改編碼為UTF-8/GBK/GB2312,2.設置一個中文字體,非中文字體可不行哦。
