APP的測試重點小部分在APP本身,大部分還是在網路通訊上(單機版除外)。所以在安卓APP測試過程中,網路抓包非常重要,一般來說,app開發會採用HTTP協議、Websocket、socket協議,一般來說,HTTP協議最多,Websocket是後起之秀,socket最少,而針對HTTP和websocket,Burp Suite工具是最適合不過的工具了。但是在遇到了app使用SSL或TLS加密傳輸(https)的時候,由於認證不被信任,直接導致網路通訊終端,抓包失敗。本文介紹如何使用Burp suite抓取https包。
一、工具準備
安卓手機一部(Nexus4,原生安卓,未root)
筆記本(帶有無線網卡,可以建立wifi熱點)
wifi熱點軟體/同一區域網路
Burp suite軟體(抓取HTTP、HTTPS、Websocket包)
二、抓包原理
通過Burp suite代理方式,將手機的流量通過Burp suite;匯出Burp Suite根憑證(PortSwiggerCA.crt)並匯入到手機中,手機的HTTPS流量將可以通過Burp suite代理。
三、配置過程1. 保證網路能進行代理
因為Burp suite是採用代理抓包方式的,所以要保證網路能夠進行代理,不能被防火牆等阻隔,最好的方式是進行主機虛擬Wifi熱點。
2. Burp suite配置
Burp suite的Proxy項目中配置代理IP及連接埠。
這裡也可以為Burp Suite添加多個代理
3. 匯出Burp Suite根憑證
在Firefox瀏覽器中,使用Burp suite代理隨意開啟一個https連結,擷取相關認證,並匯出:
直接匯出認證:
通過hfs.exe等工具,將匯出的根憑證下載到手機中,並在設定-> 安全 -> 從存放裝置安裝(認證) 選項中安裝Burp Suite根憑證:
4. 手機串連Wifi熱點,並設定代理:
手機串連我們剛設定好的Wifi熱點,並在進階選項中配置代理:
通過以上配置,app中的HTTP流量就可以直接走Burp Suite了:
四、總結:
安卓APP更多的都是採用HTTP通訊的,少數採用HTTPS的,這也是國內網路安全問題的現狀。畢竟不加密的HTTP通訊節約頻寬和系統資源,更多人直接採用非SSL或者TLS加密的HTTP通訊,這也是導致網路嗅探如此流行、簡單的原因。https的通訊需要信任公私密金鑰,所以只要有了密鑰或者根憑證,抓包就非常容易,這也直接告訴我們,如果訪問正常網站,突然彈出讓我們信任認證的時候,這時也許就是我們正在被嗅探。。。。。