抓包工具:
常用抓包工具有好多,本人就試了三個。
Charles(IOS常用)
wireshark
fiddler(mac沒有使用版本,需用Windows系統(tǒng)或連接遠(yuǎn)程安裝使用)
安裝包:官網(wǎng)下載最新即可或百度都有最新的
安裝(可參考本文最后的教程)
Charles ,fiddler 方法一致:
電腦網(wǎng)絡(luò):隨便連入一個wifi,然后查看本機(jī)地址(終端/cmd:ifconifg/ipconfig) eg:WiFi:nuanxinli,ip:192.168.191.1
手機(jī):連入電腦一樣的wifi(nuanxinli),打開手機(jī)WiFi的高級設(shè)置,打開使用代理:設(shè)置ip為192.168.191.1,端口為8888(一般默認(rèn)設(shè)置)
打開以上兩個軟件正常的話就可以看到好多條信息了
注意:雖然手機(jī)設(shè)置了代理,但是電腦上的比如說網(wǎng)頁打開的話也是好會有好多的請求的,看情況過濾或者是忽略就好。
wireshark :
這個比較特殊,不是連接wifi,而是需要設(shè)置代理,
首先:電腦連上網(wǎng)線,然后安裝一個wifi共享的軟件(eg:獵豹wifi,自行百度搜索就行)
然后:手機(jī)只需要連接電腦共享出來的wifi就行了。
最后:打開軟件,找到tools(捕獲)菜單,設(shè)置里面選擇同一網(wǎng)段的玩那條網(wǎng)絡(luò),點擊開始,操作手機(jī)就出來東西了
捕獲類型:
Charles:只捕獲http及https請求(之前沒有配置好,只捕獲了http的一點兒數(shù)據(jù))
wireshark:捕獲各類請求,但一般也就看http請求就可以了。(只捕獲了返回的數(shù)據(jù))
fiddler:只捕獲http請求,但是顯示的東西要詳細(xì)的多。(捕獲發(fā)送/返回的各個數(shù)據(jù))
基礎(chǔ)需查看頁面內(nèi)容(就是內(nèi)容需要看什么,都有哪些東西):
Charles:
注意:一旦連接上之后,手機(jī)或者電腦操作任何跟網(wǎng)絡(luò)有關(guān)的時候,這里的數(shù)據(jù)就一直在增加,不用的時候及時關(guān)掉就行了,還有就是我用的這個是試用版(好處:不要錢,壞處:每到三十分鐘就自動關(guān)閉,但是重新打開還可以繼續(xù)使用,長時間的獲取數(shù)據(jù)的話就需要注意了)。
跟fiddler的查看方式是基本類似的,主要看圈出來的三個大模塊就好了,然后遇到具體問題具體分析就行了。
然后最頂端的小工具不清楚的百度下或自己試試就行了,就不一一介紹了。
fiddler:
注意:一旦連接上之后,手機(jī)或者電腦操作任何跟網(wǎng)絡(luò)有關(guān)的時候,這里的數(shù)據(jù)就一直在增加,不用的時候及時關(guān)掉就行了
1.下載charles
可以去charles官網(wǎng)下載,下載地址:http://www.charlesproxy.com/download/ 根據(jù)自己的操作系統(tǒng)下載對應(yīng)的版本,然后進(jìn)行安裝,然后打開charles工具
2.設(shè)置代理(記住手機(jī)跟電腦要在同一個網(wǎng)絡(luò),用的同一個路由器)
1).查看默認(rèn)端口 Proxy->Proxy Settings 在這個頁面會看到HTTP Proxy的默認(rèn)端口是8888 我們不需要修改,只需要知道有這個值就行
2).查看當(dāng)前電腦的ip 例如我這里的是:192.168.9.129
3).知道了默認(rèn)端口跟ip地址,我們就可以手機(jī)上設(shè)置代理了。設(shè)置步驟我錄制了gif動畫。(我用的是genymotion模擬器,真機(jī)也是一樣的)
完成了以上兩個步驟就可以抓到http請求的數(shù)據(jù)了,效果圖如下:
接下來講解如何抓取https協(xié)議的包,如果你沒有這個需求,請不要繼續(xù)瀏覽下面的內(nèi)容
3.設(shè)置charles ssl代理
Proxy->SSL Proxy Settings 彈出一個ssl代理設(shè)置界面
1).Enable SSL Proxying復(fù)選框打上勾
2).添加你想要的設(shè)置代理的域名,端口默認(rèn)443
設(shè)置過后效果圖如下:
4.手機(jī)下載ssl證書
1).Help->SSL Proxying ->Install Charles Root Certificate on a Mobile Device or Remote Browser...
會彈出一個提示框,如下顯示:
瀏覽器輸入這個地址即可下載證書,記住要用Android自帶的瀏覽器. 地址是:http://charlesproxy.com/getssl
2).然后按照他的提示安裝證書即可.
做完第三步跟第四步就可以抓包https數(shù)據(jù)了.如果還有問題請留言。。。下面是我抓包截圖。
跟著教程來,保證100%成功抓HTTPS包
首先準(zhǔn)備一臺可以上網(wǎng)的windos電腦,準(zhǔn)備一部智能手機(jī)。
fiddler抓包工具:下載地址( 自行百度一搜一大片)。安裝,打開如果遇到.net framework錯誤,下載一個高本版的.net 即可。好了教程已經(jīng)完成了一大半。
打開fiddler隨便打開下瀏覽器。發(fā)現(xiàn)已經(jīng)可以抓包,但想要抓手機(jī)https還需要做一些設(shè)置。
打開fiddler配置Tools –> Fiddler Options.
打開HTTPS配置項,勾選“CaptureHTTPS CONNECTs”,同時勾選“Decrypt HTTPS traffic”,彈出的對話框選擇是(這里是按照fiddler自己的證書)如果跟我一樣手機(jī)跟電腦是用wifi進(jìn)行鏈接的話還需要選擇“…fromremote clients only”。如果需要監(jiān)聽不可信的證書的HTTPS請求的話,需要勾選“Ignore servercertificate errors”。
打開Conections配置項, 這里可以修改Fiddler代理端口號。勾選“Allow remote computersto connect。提示需要重啟fiddler。
哈哈,高端的來了,需要寫點代碼。這里是為了可以抓客戶端使用httpURLConnection的包。
Ruler –>CustomizeRules
在函數(shù)OnBeforeResponse里面添加下面代碼:
if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) { oSession.oResponse.headers["Connection"] = "Keep-Alive"; }
添加后代碼為:
static function OnBeforeResponse(oSession: Session) { if (m_Hide304s && oSession.responseCode == 304) { oSession["ui-hide"] = "true"; } if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) { oSession.oResponse.headers["Connection"] = "Keep-Alive"; } }
不要忘記重啟fiddler?。?!
保證手機(jī)跟pc是在同一個網(wǎng)段下。
配置手機(jī)連接的wifi,可能每個手機(jī)打開wifi配置的方式都不太一樣,仔細(xì)研究下,選擇已經(jīng)連接的網(wǎng)絡(luò),打開修改網(wǎng)絡(luò)窗口。顯示高級屬性,配置網(wǎng)絡(luò)代理–>手動 代理服務(wù)器主機(jī)名:填寫pc機(jī)的IP地址即可例如:192.168.0.4,代理服務(wù)器端口號:fiddler的代理端口號,如果沒有修改就是8888。
關(guān)鍵步驟哈:
下載安裝fiddler的證書
在手機(jī)瀏覽器打開 代理服務(wù)器:端口號 例如上面填寫的就是192.168.0.4:8888,點擊頁面中的“FiddlerRootcertificate”鏈接,在彈出的對話框中隨便設(shè)置一個名稱確定即可。
測試機(jī)上沒裝多少軟件,打開百度錢包來試試
好了。大功告成!
通過fiddler可以抓包,是不是說https就是不安全的了呢,畢竟所有的請求對我們來說都是透明的呢。其實剛才的過程很重要的一點就是我們下載并且安裝了fiddler的根證書,對于pc端來說就是配置fiddler https選項時彈出的對話框,對于手機(jī)來說就是我們?nèi)?pcip地址:fiddler代理端口這個地址下載證書的過程。
而對https的安全來說,https安全的前提就是可信的根證書!?。?!
而,之前的操作無疑是在我們系統(tǒng)里面安裝了不可信的根證書。使得fiddler對我們的通信造成了中間人攻擊!。
簡單的說就是我們與服務(wù)器進(jìn)行通信,會先獲取服務(wù)器的證書,進(jìn)行校驗校驗過程是用本地的可信根證書進(jìn)行校驗,而裝入fiddler的根證書后,fiddler可以偽造證書,獲取我們與服務(wù)器通信的秘鑰,進(jìn)行破解我們的通信。所以對我們我們系統(tǒng)來說安裝證書是一個多么危險的操作!
如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答??! 點擊進(jìn)入論壇