Fiddler实现对手机app的抓包
Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求。
Fiddler能捕获IOS设备发出的请求,比如IPhone, IPad, MacBook. 等等苹果的设备。 同理,也可以截获Andriod,Windows Phone的等设备发出的HTTP/HTTPS请求。
Andriod配置方法
1)首先确保手机和Fiddler所在主机在同一个局域网中
一、配置Fiddler, 允许"远程连接"和允许截取"HTTPS"请求
1、允许fiddler截取HTTPS请求
打开Fiddler, Tools--》Fiddler Options --》HTTPS。选中【Decrpt HTTPS traffic】以及【Ignore server certificate errors(unsafe)】, Fiddler就可以截获HTTPS请求。
2、允许fiddler截取远程请求
继续打开Tools--》Fiddler Options--》connection,选中【Allow remote computers to connect】. 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来。
重要提醒:(配置完后记得要重启Fiddler使配置生效)
二、获取Fiddler所在主机的IP地址
此时的电脑与需要抓包app的手机应该处于同一网段(处于同一局域网内)
方式①:
方式②:
三、Andriod手机网络代理设置
对手机所连接的无线网络进行设置:
1、点击WLAN,长按与Fiddler所在主机在同一个局域网的wifi;
2、长按点击【修改网络】,选中【显示高级选项】,代理设置为手动,输入代理服务器的主机名和端口后保存。
【这一步是为了使Fildder能够作为服务代理器截取手机app的包】。
【代理服务器的主机名即Fiddler主机电脑IP地址】
【端口为Fiddler上配置的端口(默认为8888),在Fiddler菜单栏中【Tool】-【Fiddler Option】的【Connections】中查看或者修改】
四、Android手机上安装Fiddler证书------【这一步是为了让Fiddler能捕获HTTPS请求。 如果你只需要截获HTTP请求, 可以忽略这一步】
【HTTPS协议是双向认证的安全协议,发送请求时需要携带安全证书证明和服务器正在通信的客户端是安全的】
在手机浏览器上输入:http://IP地址:端口(例如:http://192.168.11.29:8888)
【此时的IP地址为代理服务器即Fiddler电脑的ip,端口号也是Fiddler中配置的端口号】
【fiddler在此时就相当于一个服务器,有自己的ip和端口号,手机正确请求后,fiddler默认会返回一个Fiddler证书供手机端下载】
点击【FiddlerRoot certificate】下载安装Fiddler证书。
五、若在浏览器上无法打开该地址,需要做三项检查:
1、确保在浏览器中,局域网的网络代理中配置的代理与Fiddler所在主机地址即Fiddler中配置的端口保持一致;
2、确保在Fiddler-【Tools】-【Fiddler Option]-[Connection]中【Allow remote computers to connect】已经勾选上,若没有勾选,则需要勾选后保存并重启Fiddler。
3、可能某些Android手机对未知证书的安装来源做了限制,这时可以百度搜索如何在相应的Android手机上信任未知证书。
打开手机上的浏览器或APP,可以在Fiddler上看到手机上的数据包了。
-----------------------------------------------------------------------------------------------------------------------------------------------------------
IOS配置方法
一、配置Fiddler, 允许"远程连接"和允许截取"HTTPS"请求
二、获取Fiddler所在主机的IP地址
注意:【IOS设备抓取app接口的前两步与Andriod手机app抓包配置相同】
三、IPhone上安装Fiddler证书 ------【这一步是为了让Fiddler能捕获HTTPS请求。 如果你只需要截获HTTP请求, 可以忽略这一步】
执行这一步的前提条件就是Fiddler主机电脑和抓包手机必须处于同一局域网内
1. 首先要知道Fiddler所在的机器的IP地址:假如我安装了Fiddler主机电脑的IP地址是:192.168.1.187
2. 打开IPhone 的Safari, 访问 http://192.168.1.187:8888, 点"FiddlerRoot certificate" 然后安装证书
注意:需要在证书信任设置中开启信任,否则安装后不生效,【设置】--- 【通用】--- 【关于本机】--- 【证书信任设置】--- 【信任】
四、iPhone上配置网络代理
打开IPhone, 找到你的网络连接, 打开HTTP代理, 输入Fiddler所在机器的IP地址(比如:192.168.1.187) 以及Fiddler的端口号8888
五、开始抓包
现在IPhone上的应用(比如Safari, Firefox, Itunes, App Store)发出的HTTP/HTTPS都可以被Fiddler获取。
用完了, 记得把IPhone上的Fiddler代理关闭, 否则iPhone上不了网。
六、只能捕获HTTP,而不能捕获HTTPS的解决办法
有时候会发现, Fiddler 只能捕获IPhone发出得HTTP请求, 而不能捕获HTTPS请求, 原因可能是证书没有安装好。 解决办法是:
1. 先把IPhone上所有的Fiddler证书删除 (在iPhone中依次点击【设置】---【通用】---【描述文件】---【删除】)。
2. 安装上面的方法,重新安装Fiddler证书。