【小结】fiddler

概述

工作原理(HTTP)

HTTPS原理

工作原理(HTTPS

下载安装及设置

常用操作之获取请求

常用操作之仿真请求

常用操作之修改请求数据

常用操作之修改响应数据

一、概述

fiddler是一款抓取HTTP/HTTPS协议的抓包工具。用fiddler捕获请求以便排查错误原因,用fiddler仿真一次http请求,通过设置请求断点和响应断点来修改数据观察测试

现象是在工作中比较常用的。

二、工作原理(HTTP)

抓包分析:抓取客户端与服务端通讯的数据,在此基础上进行分析。

fiddler是以一个web服务器代理的形式工作的。以两张图来说明

 fiddler截获浏览器发送给服务器的数据,冒充浏览器发送给服务器;服务器返回的数据,也会被fiddler截获,经fiddler返回浏览器

 代理工作的默认IP是127.0.0.1,默认端口是8888

使用fiddler打开浏览器时,fiddler会自动修改浏览器的代理使之指向fiddler,关闭浏览器之后,fiddler会自动清除代理。

三、HTTPS原理

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的

私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

使用HTTPS 协议进行通讯,分成证书验证和数据传输两个阶段,HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。相较对称加密算

法,非对称加密算法安全性高,但是效率低,http 的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的。

四、工作原理(HTTPS

首先我们需要安装fiddler的根证书并主动把它添加到受信任(计算机认可)的根证书颁发机构

以请求https://www.baidu.com为例

1、截获服务器的公钥----当浏览器发送请求后,也就是证书验证阶段,百度会将自己的CA证书以及百度的公钥返回,被fiddler截获

2、用假证书骗浏览器----Fiddler伪造自己的CA证书包含伪造的公钥发给浏览器

3、浏览器用假公钥加密对称密钥----由于fiddler的根证书是受信任的,浏览器就用伪造的公钥加密生成的随机数(对称秘钥),往服务器端发,又被fiddler截获

4、截获数据传输用的对称密钥----fiddler用自己私钥解开随机码,获得通讯的对称秘钥

5、模拟浏览器重发请求给服务器----fiddler用百度的公钥加密对称秘钥,然后传给百度,百度用自己私钥解开对称秘钥,这样双方就能使用加密传输了

五、下载安装及设置

1.下载

官网(FQ):https://www.telerik.com/fiddler

fiddler2适用于win7和xp系统

fiddler4适用于win8+,这里可能需要安装.net framework4.0+

2.设置

(1)抓取本机谷歌http请求无需设置,开箱即用

(2)抓取本机谷歌https请求:

参考:https://www.cnblogs.com/joshua317/p/8670923.html

           https://www.cnblogs.com/tu-0718/p/10895607.html

(3)抓取手机app请求

参考:https://www.cnblogs.com/sucretan2010/p/11526467.html

六、常用操作之获取请求

  

七、常用操作之仿真请求

选中右侧composer面板,将要测试的请求从会话列表中拖拽到composer面板下,修改参数数据,点击execute

可以利用仿真构造测试分页效果时的数据

八、常用操作之修改请求数据

抓包获取要修改的http请求的会话,点击rules->automatic breakpoints->before requests,选中该请求,点击replay,再次发送请求,修改请求的数据,点击run to

completion

验证服务端是否对数据进行了相关校验,如:注册会员功能

九、常用操作之修改响应数据

 rules->automatic breakpoints->after responses,浏览器中刷新页面(客户端向服务端发起一次请求),fiddler中选中要修改请求,修改响应数据,点击run to

completion

验证前端的显示,如下图

 

手机端模拟数据返回的时候需要先右键会话保存整个响应信息,修改后通过设置替换掉原来的响应信息,具体的做法参考下面这篇文章

https://www.jianshu.com/p/ab417b6f6a59

 以上设置的断点是全局断点,还可以通过命令行对某个请求打断点

posted @ 2019-12-16 09:58  pengpeng3593  阅读(131)  评论(0)    收藏  举报