fiddler的安装以及使用同时对Android 与IOS 抓包配置进行分析 进阶 一
由于工作方向的原因,很久没有用过APP抓包工具了,有那么一天遇到了bug需要协助开发工程师进行定位分析,然后又重新梳理了一下之前常用的抓包工具,这里重点介绍一下目前市面上最流行的几款抓包工具,根据自己需求进行选择一款属于自己的就行了,学不在多在于精;
一、fiddle
1.Fiddler是一个独立的应用,可以调试PC、Mac或Linux系统和移动设备的之间的通信,支持大部分框架如java、.net、java、Ruby,需要设置代理。
2.能够暂停Http通讯,并且允许修改请求和响应方便进行安全测试,也可以设置检查点做功能测试。
3.通过暴露HTTP头,用户可以看见哪些页面被允许在客户端或者是代理端进行缓存。如果要是一个响应没有包含Cache-Control头,那么他就不会被缓存在客户端。
4.可以通过Composer进行接口测试。
二、firebug
1、Firebug是firefox下的一个扩展,它除了能进行网络分析还能够调试所有网站语言,如js、Html、Css等,支持各种浏览器如IE、Firefox、Opera,、Safari。
2. Firebug是开源工具,能够将页面中的CSS、javascript以及网页中引用的图片载入所消耗的时间以矩状图呈现出来,方便我们对网页进行调优。
3.Firebug编辑、删改任何网站的CSS、HTML、DOM 以及JavaScript 代码,可以通过小箭头定位页面元素
三、Charles
1、支持http与https代理 可以调试PC、Mac或Linux系统和移动设备的之间的通信,支持大部分框架如java、.net、java、Ruby,需要设置代理。
2、支持流量控制(可以使用它来模拟特殊场景进行app的弱网控制)
3、支持接口并发请求以及短点调试
四、这次主要介绍一下Fiddler 的安装以及常用常用功能模块:
1、为什么是fiddler?
抓包工具有那么多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下:
a.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。
b.Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用。
c.Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显无力,而Fiddler2是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。
2、什么是Fiddler?
Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序
五、下载以及安装
• 打开官网,官网下载地址是 https://www.telerik.com/download/fiddler
• 打开以后选择你的相关信息如下图:
• 点击Download按钮进行开始下载:
安装:
• 下载完成后双击安装包,如下图:
• 根据提示一路点击,当点击完成Install按钮,等待一会时间后即可安装成功。
• 点击Close按钮 ,这里就算安装成功了
六、Fiddler的配置
电脑端监听
• 我们双击打开软件,进入到如下的一个界面,然后点击某一个请求,你会发现请求的内容是一堆明显不对的文字,然后该请求的左边是一个锁的样式,联想到https加密,你会发现原因可能是没有配置Fiddler。然后解释一下右边的默认返回内容,第一句是**“这是一个CONNECT隧道,加密的HTTPS流量通过该隧道流动。”**,就证实了我们的猜测,果然是因为https加密的原因。
• 那么如何配置FIddler来解析这些加密的请求呢?方法一是查官网的安装文档,二是看提示,软件公司还是很人性化的在返回内容里面提示了需要在哪里设置,就是第二行那一句:"enable the Tools > Options > HTTPS > Decrypt HTTPS traffic option."
• 我们按照提示来进行设置,先在左上角的工具栏里面找到Tools,然后依次选择Options、HTTPS ,然后勾选Decrypt HTTPS traffic选项,勾选后安装证书。(尽量把Ignore server 、Check for.....都勾选上)
• 安装证书两种方法:
• 勾选后点击右边的Actions按钮选择**“Trust Root Certificate”**选项,然后全部选择是就行了。
• 勾选后点击右边的Actions按钮选择第二个选项将证书导出到桌面,然后再在对应的浏览器里面添加即可。
• 然后我们再打开一个新的网页(例如百度),查看请求
• 至此,已经可以监听PC端浏览器的请求了。
手机端监听
安卓手机
但是如果你想要对手机上的app进行抓包怎么办呢,那么你还需要进行以下操作:
• 首先你的Fiddler所在的电脑和手机必须处在同一个局域网内(即连着同一个路由器)。
• 查看你的本机IP地址,首先win + R 打开命令栏 输入cmd 后进入命令框 在命令框中输 ipconfig 既可以查看本地 ip 地址
• fiddle 配置连接信息:Tools > Options >Connections
- 端口默认是8888,你可以进行修改。
- 勾选Allow remote computers to connect选项,然后重启Fiddler,再次打开时会弹出一个信息,选择ok即可。
• 打开你的手机,找到你所连接的WIFI,长按选择修改网络,输入密码后往下拖动,然后勾选显示高级选项,然后在代理一栏选择手动,再将你先前查看的IP地址和端口号输入进去,然后保存。(一定要输入刚刚自己查看的ip,不要输入下面示例的ip)
• 最后安装手机证书,在手机浏览器一栏输入电脑的IP地址和端口号
示例:192.168.1.157:8888
• 进入一个网页,点击最下面那个FiddlerRoot certificate下载证书,下载成功后在设置里面安装,安装步骤:打开高级设置->安全->从SD卡安装证书->找到证书文件->点击后为证书命名点击确定即可安装成功(每个版本手机安装方式不同,低版本的直接点击下载的文件即可安装证书)(我的手机是华为的,具体过程请根据实际机型百度查找,关键词是从SD卡安装证书)
• 测试一下,比如在手机上打开抖音app,找到评论的那一个请求。
• 可以看到我们已经成功的找到了评论所对应的那个请求
手机端监听
IOS 手机
同样手机打开浏览器,访问 电脑ip:fiddler配置的端口:
如: 192.168.1.157:8888,如果出现下图界面,证明连接成功
点击上图所示:you can dowunload the FiddlerRoot certficate。
下载fiddler证书。
下载后打开手机设置-通用-描述文件与设备管理,进行证书安装。安装后如下:
证书安装后,打开设置-通用-关于本机-证书信任设置,信任刚刚安装的证书。(这步非常重要)
完成
现在你可以在电脑上用fiddler抓取ios上的请求了。
本文来自博客园,作者:ganfd,转载请注明原文链接:https://www.cnblogs.com/ganfd/p/15752878.html