简介:
Android及IPhone手机上如何利用Fiddler进行网络数据抓包,比如我们想抓某个应用(微博、微信、墨迹天气)的网络通信请求。
Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展,在web开发和调优中经常配合firebug使用。
1.Fiddler安装
b.安装:省略(下一步...下一步即可)
2.:网络要求
需要1台PC做辅助,且PC需要与手机在同一局域网内或有独立公网ip,关掉防火墙。
3.Fiddler配置
a.允许远程计算机连接Fiddler
菜单:Tools-> FiddlerOptions->Connections,勾选"Allow remote computersto connect" ;
默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler;
b.配置可捕获HTTPS请求(*不需要捕获HTTPS,则忽略此步*)
菜单:Tools-> FiddlerOptions->Connections,勾选"Capture HTTPSCONNECTs"后再勾选"Decrypt HTTPS traffic"、"Ignore server certificate errors",第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。
4.配置手机端
在电脑中打开CMD窗口看本机的IP地址:
手机端配置
打开手机连接到同一局域网的wifi,并修改该wifi网络详情(长按wifi选择->修改网络)->显示高级选项,选择手动代理设置,主机名填写Fiddler所在机器ip,端口填写Fiddler端口,默认8888
手机安装HTTPS证书(*不需要捕获HTTPS,则忽略此步*)
Fiddler本质上是一个HTTPS代理服务器,其自己带的证书显然不会在Android设备的受信任证书列表里。有些应用程序会查看服务器端的证书是否是由受信任的根证书签名的,如果不是就直接跳出。所以,为了保险起见,我们要将Fiddler代理服务器的证书导到Android设备上。
具体步骤:
1.首先确定Fiddler所在电脑的IP地址:例:192.168.1.111
2.打开被测手机浏览器,访问http:// 192.168.1.111:8888
3.点击页面中的“FiddlerRoot certificate”链接,接着系统会弹出对话框:
输入一个证书名称,然后直接点“确定”就好了。Android安装稍微麻烦点,需要设置手机锁屏密码、PIN码,安装证书时会提示,按步骤走即可。
分析数据:
一切都设置完成了,打开知乎日报我们来抓包看看效果吧,打开Fiddler,看看能拿到什么:
请求体:
响应体:
Statistic :关于HTTP请求的性能和其他数据分析,包含一些基本性能数据:如DNS解析的时间消耗,建立TCP/IP连接的时间消耗等等信息
Inspectors:分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。
AutoResponder:可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。需要勾选allow autoresponser 并设置相应的规则。
Composer:可以构建相应的请求,有两种常用的方式构建请求:
(1)Parsed 输入请求的url之后executed即可,也可以修改相应的头信息(如添加常用的accept, host, referrer, cookie,cache-control等头部)后execute.
(2)Raw。使用HTTP头部信息构建http请求。
Filter: 可以添加过滤规则