【基础】fiddler抓取安卓https请求
一、Fiddler 简介
Fiddler 是一款免费、灵活、操作简单、功能强大的 HTTP 代理工具,是目前最常用的抓包工具之一。具备的功能:抓取所有的 HTTP/HTTPS 包、过滤会话、分析请求详细内容、伪造客户端请求、篡改服务器响应、重定向、网络限速、断点调试等。
二、Fiddler 工作原理
Fiddler 抓包实现原理:客户端服务器进行消息交互时,HTTP 客户端设置 Fiddler 作为代理,把 http 请求发送给 Fiddler,Fiddler 再转发给服务器,同样,服务器返回消息也是先返回给 Fiddler,再由 Fiddler 转发给客户端。就像两个人聊天会通过一个中间人传话,这个中间人就是 Fiddler,他自然什么都知道。
三.下载与安装
3.1、Fiddler 安装
链接:https://pan.baidu.com/s/1bdVSGexjE-A2dg9od1jvKg
提取码:omu0
3.2、HTTPS 证书安装
默认状态下,Fiddler 只能监听 HTTP 请求。比如我们打开百度官网https://www.baidu.com/,然后去Fiddler查看。
想要抓取 HTTPS 请求包,需要先进行设置。路径:Tool--Options--HTTPS,勾选如下选项。
点击第 4 步 Actions 时选择‘Export Root Certificate to Desktop’,弹出提示
四、配置手机抓包
如果我们想要抓取手机上的 HTTP 请求,还需要在手机上进行配置。要注意的是,苹果和安卓的配置方法有很多差异。安卓手机的不同品牌、同品牌的不同型号,配置方法大同小异。下面以安卓手机为例。
1、确保手机和运行 fiddler 的电脑使用的是同一个子网,比如使用同一个 wifi 信号连接
2、设置 Fiddler,允许远程机器连接自己,点击菜单 option,点击 connections 标签,勾选 Allow remote computer to connect, 如下所示
3、打开手机 wifi,选择当前的 wifi,点击修改网络,点击“代理设置”,主机名和端口输入 Fiddler 所在机器的 ip 地址(通过 ipconfig 查看)和代理端口 8888。
此时,我们在手机上打开百度,可以看到 Fiddler 成功监控了,但是无法对 HTTPS 会话解密,要想用 Fiddler 抓取手机上的 HTTPS 数据包,还需要在手机下载并安装 Fiddler 根证书。
4.2、手机下载 Fiddler 根证书
根证书地址:http://代理服务器地址:8888/FiddlerRoot.cer
下载完成后,进行安装。
以我的手机为例,安装时系统会提示‘出于安全考虑,请去“设置”里安装’。
路径为:设置--安全与隐私--更多安全设置--从手机存储安装--CA 证书,不同手机路径可能不同,自己找下。
此时,Fiddler 就已经可以抓取手机端发送到服务端的所有 HTTP/HTTPS 协议了
这样,手机抓包的就算配置成功了,需要注意的是‘防火墙需要允许 Fiddler 进程可以远程链接’。
4.3、补充:解决Android7以上抓包失败问题
此外,在过程中发现,环境都配置好之后,还是会出现APP抓HTTPS抓不到的情况(Android7以上系统),有可能是App内置证书的问题 -- SSL Pinning 机制(也可称为证书绑定)
具体原因及解决办法可以看下这篇文章(写的很详细,不复述了):
http://testingpai.com/article/1595507273724
备注:
需要设置过滤条件,在过滤器里面设置
类型过滤,一般对各种图片、CSS、JS这类的静态素材也不需要看的情况下,直接全部过滤掉
文章转载参考:https://blog.csdn.net/zp_cyy/article/details/122591832?spm=1001.2014.3001.5501
本文来自博客园,作者:橘子偏爱橙子,转载请注明原文链接:https://www.cnblogs.com/xfbk/p/15875410.html