抓包工具:
常用抓包工具有好多,本人就试了三个。
Charles(IOS常用)
wireshark
fiddler(mac没有使用版本,需用Windows系统或连接远程安装使用)
安装包:官网下载最新即可或百度都有最新的
安装(可参考本文最后的教程)
Charles ,fiddler 方法一致:
电脑网络:随便连入一个wifi,然后查看本机地址(终端/cmd:ifconifg/ipconfig) eg:WiFi:nuanxinli,ip:192.168.191.1
手机:连入电脑一样的wifi(nuanxinli),打开手机WiFi的高级设置,打开使用代理:设置ip为192.168.191.1,端口为8888(一般默认设置)
打开以上两个软件正常的话就可以看到好多条信息了
注意:虽然手机设置了代理,但是电脑上的比如说网页打开的话也是好会有好多的请求的,看情况过滤或者是忽略就好。
wireshark :
这个比较特殊,不是连接wifi,而是需要设置代理,
首先:电脑连上网线,然后安装一个wifi共享的软件(eg:猎豹wifi,自行百度搜索就行)
然后:手机只需要连接电脑共享出来的wifi就行了。
最后:打开软件,找到tools(捕获)菜单,设置里面选择同一网段的玩那条网络,点击开始,操作手机就出来东西了
捕获类型:
Charles:只捕获http及https请求(之前没有配置好,只捕获了http的一点儿数据)
wireshark:捕获各类请求,但一般也就看http请求就可以了。(只捕获了返回的数据)
fiddler:只捕获http请求,但是显示的东西要详细的多。(捕获发送/返回的各个数据)
基础需查看页面内容(就是内容需要看什么,都有哪些东西):
Charles:
注意:一旦连接上之后,手机或者电脑操作任何跟网络有关的时候,这里的数据就一直在增加,不用的时候及时关掉就行了,还有就是我用的这个是试用版(好处:不要钱,坏处:每到三十分钟就自动关闭,但是重新打开还可以继续使用,长时间的获取数据的话就需要注意了)。
跟fiddler的查看方式是基本类似的,主要看圈出来的三个大模块就好了,然后遇到具体问题具体分析就行了。
然后最顶端的小工具不清楚的百度下或自己试试就行了,就不一一介绍了。
fiddler:
注意:一旦连接上之后,手机或者电脑操作任何跟网络有关的时候,这里的数据就一直在增加,不用的时候及时关掉就行了
1.下载charles
可以去charles官网下载,下载地址:http://www.charlesproxy.com/download/ 根据自己的操作系统下载对应的版本,然后进行安装,然后打开charles工具
2.设置代理(记住手机跟电脑要在同一个网络,用的同一个路由器)
1).查看默认端口 Proxy->Proxy Settings 在这个页面会看到HTTP Proxy的默认端口是8888 我们不需要修改,只需要知道有这个值就行
2).查看当前电脑的ip 例如我这里的是:192.168.9.129
3).知道了默认端口跟ip地址,我们就可以手机上设置代理了。设置步骤我录制了gif动画。(我用的是genymotion模拟器,真机也是一样的)
完成了以上两个步骤就可以抓到http请求的数据了,效果图如下:
接下来讲解如何抓取https协议的包,如果你没有这个需求,请不要继续浏览下面的内容
3.设置charles ssl代理
Proxy->SSL Proxy Settings 弹出一个ssl代理设置界面
1).Enable SSL Proxying复选框打上勾
2).添加你想要的设置代理的域名,端口默认443
设置过后效果图如下:
4.手机下载ssl证书
1).Help->SSL Proxying ->Install Charles Root Certificate on a Mobile Device or Remote Browser...
会弹出一个提示框,如下显示:
浏览器输入这个地址即可下载证书,记住要用Android自带的浏览器. 地址是:http://charlesproxy.com/getssl
2).然后按照他的提示安装证书即可.
做完第三步跟第四步就可以抓包https数据了.如果还有问题请留言。。。下面是我抓包截图。
跟着教程来,保证100%成功抓HTTPS包
首先准备一台可以上网的windos电脑,准备一部智能手机。
fiddler抓包工具:下载地址( 自行百度一搜一大片)。安装,打开如果遇到.net framework错误,下载一个高本版的.net 即可。好了教程已经完成了一大半。
打开fiddler随便打开下浏览器。发现已经可以抓包,但想要抓手机https还需要做一些设置。
打开fiddler配置Tools –> Fiddler Options.
打开HTTPS配置项,勾选“CaptureHTTPS CONNECTs”,同时勾选“Decrypt HTTPS traffic”,弹出的对话框选择是(这里是按照fiddler自己的证书)如果跟我一样手机跟电脑是用wifi进行链接的话还需要选择“…fromremote clients only”。如果需要监听不可信的证书的HTTPS请求的话,需要勾选“Ignore servercertificate errors”。
打开Conections配置项, 这里可以修改Fiddler代理端口号。勾选“Allow remote computersto connect。提示需要重启fiddler。
哈哈,高端的来了,需要写点代码。这里是为了可以抓客户端使用httpURLConnection的包。
Ruler –>CustomizeRules
在函数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!!!
保证手机跟pc是在同一个网段下。
配置手机连接的wifi,可能每个手机打开wifi配置的方式都不太一样,仔细研究下,选择已经连接的网络,打开修改网络窗口。显示高级属性,配置网络代理–>手动 代理服务器主机名:填写pc机的IP地址即可例如:192.168.0.4,代理服务器端口号:fiddler的代理端口号,如果没有修改就是8888。
关键步骤哈:
下载安装fiddler的证书
在手机浏览器打开 代理服务器:端口号 例如上面填写的就是192.168.0.4:8888,点击页面中的“FiddlerRootcertificate”链接,在弹出的对话框中随便设置一个名称确定即可。
测试机上没装多少软件,打开百度钱包来试试
好了。大功告成!
通过fiddler可以抓包,是不是说https就是不安全的了呢,毕竟所有的请求对我们来说都是透明的呢。其实刚才的过程很重要的一点就是我们下载并且安装了fiddler的根证书,对于pc端来说就是配置fiddler https选项时弹出的对话框,对于手机来说就是我们去 pcip地址:fiddler代理端口这个地址下载证书的过程。
而对https的安全来说,https安全的前提就是可信的根证书!!!!
而,之前的操作无疑是在我们系统里面安装了不可信的根证书。使得fiddler对我们的通信造成了中间人攻击!。
简单的说就是我们与服务器进行通信,会先获取服务器的证书,进行校验校验过程是用本地的可信根证书进行校验,而装入fiddler的根证书后,fiddler可以伪造证书,获取我们与服务器通信的秘钥,进行破解我们的通信。所以对我们我们系统来说安装证书是一个多么危险的操作!
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛