前言
今天想和大家来聊聊fiddler抓包,废话不多说我们直接开始吧。
1、Fiddler工具的作用和常用使用场景
Fiddler是一款常见的抓包分析工具,可详细的对HTTP 请求进行分析,并模拟对应的HTTP请求
作用:
1)查看本机IP
2)模拟限速操作
3)篡改数据
4)重定向功能
5)发送自定义请求,模拟小型接口测试
6)App抓包
常用场景:
1)查看本机IP
2)辅助定位bug--抓取协议包,前后端联调
3)APP弱网模拟测试--弱网、断网、404、502、超时
4)前端性能分析及优化
5)API接口测试
6)构建模拟测试场景--数据篡改、重定向
①解析请求
解析http请求状态,请求头、请求正文、返回头、返回正文等
②修改请求返回数据
设置断点修改发出的请求数据,或修改请求返回的数据
③重定向请求
替换远程文件,调试线上js/css文件
④构造请求
构造请求发送数据,测试网站安全性
2、Fiddler工具的工作原理是什么?
1.本地应用与服务器之间所有的Request 和Response都将经过Fiddler,由Fiddler进行转发,此时Fiddler以代理服务器的方式存在。
2.由于所有的网络数据都会经过Fiddler,因此Fiddler能够截获这些数据,实现网络数据的抓包
3.详细见图片说明
首先fiddler截获客户端浏览器发送给服务器的https请求, 此时还未建立握手。
第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证书, 用根证书公钥进行解密, 验证服务器数据签名, 获取到服务器CA证书公钥。
第二步, fiddler伪造自己的CA证书, 冒充服务器证书传递给客户端浏览器, 客户端浏览器做跟fiddler一样的事。
第三步, 客户端浏览器生成https通信用的对称密钥, 用fiddler伪造的证书公钥加密后传递给服务器, 被fiddler截获。
第四步, fiddler将截获的密文用自己伪造证书的私钥解开, 获得https通信用的对称密钥。
第五步, fiddler将对称密钥用服务器证书公钥加密传递给服务器, 服务器用私钥解开后建立信任, 握手完成, 用对称密钥加密消息, 开始通信。
第六步, fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文。再次加密, 发送给客户端浏览器。
第七步, 客户端向服务器发送消息, 用对称密钥加密, 被fidller截获后, 解密获得明文。
由于fiddler一直拥有通信用对称密钥, 所以在整个https通信过程中信息对其透明。
3、Fiddler抓取HTTPS包
以chrome浏览器工具为例,不同浏览器可能存在部分差异
1、设置fiddler工具
2、信任证书
1、设置fiddler工具
2、信任证书
一路点击是,则完成了证书的信任,查看证书,可以找到DO_NOT_TRUST_FiddlerRoot,则代表成功。
访问https://www.baidu.com 网站,检查fiddler中有无相关记录
4、想抓取一些特定的页面相关请求
因为fiddler工具是抓取全部的http请求,比如分别访问了百度/网易/腾讯的网页,但只想在工具上显示百度的相关请求?
设置过滤器:
5、一些快速命令的使用,cls/select/?等
1)命令输入位置:
** 2)命令类型**
① ?字符串,如**?sometext 。**当您键入一些字符串,如sometext ,Fiddler将突出会话所在的URL中包含sometext的请求 。此时按Enter键将高亮选中所有匹配的会话
②**<size,**如<50k 。选择请求响应大小小于size字节的会话
③**>size,**如>50k 。选择请求响应大小大于size字节的会话
④**=status、 =method,**如=200、=301(重定向响应)或=post 。选择响应状态=status 或请求方法=method的会话
⑤**@host,**如 @baidu.com 。 选择会话中域名包含host的会话,此时按Enter键可高亮所有匹配的结果
⑥bold , 如:预先设置会话加粗:标记任何URL包含了目标字符串的后续请求
⑦cls or clear,清空会话列表
⑧g or go,恢复所有设置断点的会话
⑨quit,退出Fiddler
⑩bpafter+域名,如bpafter baidu(输入bpafter解除断点)。设置中断RequestURI中包含指定字符串的任何响应
tip:再次输入bpafter取消设置
⑪bpu,如:bpu baidu(输入bpu解除断点)。对包含指定字符串的URI创建请求断点。设置此命令将清除该命令的任何以前的值,不带参数调用它会禁用断点
今天的分享就到这里了喜欢的可以给我点点关注哟
版权归原作者 测试框架师凃九 所有, 如有侵权,请联系我们删除。