- fiddler的介绍
- fiddler 的工具构建
- 基本配置
- 监控面板
- 如何抓取第一个包
- 筛选内容
- autorespnder自动响应器
- 断点
- 弱网测试
- 基于https进行抓包
- 基于手机如何抓包
- 总结
首先聊聊我们为什么要学习fiddler,学习一个东西,带着目的学习,往往能学的更好,知道自己为什么要去学这个东西。那我们为什么要学习fillder呢?现在来看看
fiddler的介绍
抓包,无非是通过fiddler这个被称之为代理服务器的,相当于中间件,当客户端给我们的服务器发送一个请求的时候,首先会经过fiddler,然后在由fiddler 这个工具,向服务器发送客户端的请求,服务器接收到请求,做了些处理,然后需要将数据返回给客户端,fiddler又充当中间人,能比客户端先拿到数据,也可以进行修改参数。这就是fiddler的作用,fiddler 中web服务器部署在服务器上,通过绑定ip地址,并监听端口,就可以实现接收和处理HTTP请求了,抓包运用最多的就是我们的接口测试了,比如说一个登录,我们给服务端post一个请求,把我们的账号和密码携带过去,如何判断服务器是否接受到我们传递的参数呢,返回的参数是否是正确的呢?这都是我们需要判断的,如果返回message:success,证明返回成功。这些都是在可视化界面中无法看到的。这也是我们使用抓包fiddler的原因。
fiddler 的工具构建
fiddler 默认可以直接对chrome 和IE进行处理,而不用做任何的配置
发送请求http,包括请求报文和响应报文
请求报文:客户端---------------->服务器
响应报文:服务器---------------->客户端
请求中又包括:请求行,请求头,空一格,请求体(请求正文)
请求行:请求方法,url地址,http版本号:1.0/1.1
请求方法:get,post,put,delete,head,options,trace等
常用的有get,post
面试常问题,get,post 的区别
这里就简单解释一下
get请求,将参数直接写到url的地址后面,长度肯定会被限制,还有就是不安全,数据全部暴露在外面
post请求,恰恰相反,将数据存放在表单中,大大的增加了数据的安全性。这只是片面的了解,如果感兴趣,点击get和post区别
常见的请求参数:
了解一下什么是cookie和session
比如是,我第一次注册,注册成功了,会保留一些信息存放在本地的cookie 中,相当于一个令牌,下次登录的时候,我就可以直接把cookie里面存放的信息,发送给服务器,和服务器里面存储的东西作比较,服务器里面的就叫做session,如果匹配成功,里面的信息核实正确,就会给你跳转到首页了,登录成功。
常见的状态码
响应中包括,响应状态行,响应头,空一行,响应体(服务器给你返回的数据)
服务端给你返回的数据
基本配置
修改端口号:
Tools-----options-----Fiddler listens on port
Act as system proxy on startup 勾选做系统代理,如果是火狐浏览器的话,就可以自己配置,做代理。
Fiddler listens on ports :8888(默认端口号,只要不冲突,都可以),点击ok,我们就能愉快的抓包了。
监控面板
请求会话中里面所以参数详细介绍
软件子工具介绍:
添加备注信息:
显示效果:
replace,重放,每次都能向服务器发送一次请求,快捷键就是R键,
shift+R:输入次数,直接重放
删除所有会话sessions快捷键:ctrl+x
stream:设置模式,流模式/缓存模式,一般我们都设置更改,都是fiddler获取到所有的数据,再一起发送给客户端。
decode:返回的数据,直接做一个解码,有时内容出现问题时
keep:all sessions:连接到会话的数量限制到多少,一般不做限制
any process:可以在软件外面选择你需要监听的端口号
find:可以查找你的需要找的session,快捷键:ctrl+f,查找功能
Inspectors:相当于一个检查器,双击一个会话,直接打开,检查一个请求用的,请求报文和响应报文,用很多种形式展示我们的显示信息。
如何抓取第一个包
以CSDN为例
之前的配置已经做好了,这回,我们就要,先在电脑上点击shift+delete,删除已经抓到的所有包,登录网址,打开之后输入手机号和密码,点击登录。
回到我们的fiddler,查看我们的客户端发出的数据,和服务端返回的数据
客户端请求的数据:
服务器返回的数据:
之后我们可以看到登录页面给我返回的信息
这样我们抓取的第一个包了,通过抓包,我们可以看到服务器给我们返回的信息,然后,前端可以对返回的信息,进行操作,比如说,在登录页面的上方显示红色字体,用户名或密码错误,当我们输入正确的用户名和密码,那返回的结果又会是怎样,这就需要大家去操作操作了。
筛选内容
如何从包中快速定位我们想要的内容,一开始我们抓包打开页面,我们会发现,有大量的数据在跳动,像一些css,js,图片等一些我们用不到的东西,我们该怎么筛选呢?
第一种方式:
第二种方式:点击菜单栏中的Rules,可以自己设置一些条件,隐藏掉一些自己不需要的数据。
第三种方式:设置一些规则,我们同样能达到该效果。
使用Filters,也叫作过滤器,介绍:
主机的过滤:Hosts
客户端进程的过滤:Client Process
请求头的过滤:Request Headers
断点的过滤:Breakpoints
响应状态码的过滤:Response Status Code
响应类型和大小:Response Type and Size
快速定位bug
AutoRespnder自动响应器
设置规则,更灵活的使用,拦截某一请求,进行操作。
重定向到本地资源,简单例子如果我们在公共场合,黑客暴露出一个wifi,不法分子就可以利用fiddler中的autoresponder 实现重定向,拿本地已经写好的页面,进行替换,当你访问哪个网站时,直接跳转到他希望你跳转的页面,这也就是所谓的钓鱼了。安全小提示,以后还是担心咯,希望提高我们上一辈人的安全意识,像一些扫码,给验证码的事,都需要去提醒他们,防止上当受骗。
使用fiddler的内置响应
自定义响应
一般配置,设置允许规则
匹配规则,自带就有很多
断点
设置断点,判断我们拿到的数据是否和接口文档返回的内容一致
go,让某一个程序停下来,关注他的数据状态
设置断点,点击一次,请求前的断点,指的是数据还没有发到服务器的时候,可以做一些操作。比如输入了账号和密码,设置断点。如果点击了go的话,就会发过去。
点击两次,设置请求后的断点。这时候fiddler就已经拿到了服务器返回到的内容,还没有发给客户端,如果再点击Go,就会发到客户端。
第二种方式也可以点击菜单栏Rules,下面有个选项Automatic Breakpoints里面有两个选项,Before Requests(请求前断点),在没发送给服务器之前,可以给数据进行篡改,再点击发送,After Responses(响应后断点),当fiddler拿到服务器返回的数据,同理,也是这样操作。功能很强大。还可以模拟网络中断,当拿到服务器响应的数据时,删除获得的所有数据,客户端就会有一个超时,模拟这种操作,看客户端的反应。
弱网测试
一些极端测试的手段,可以更改脚本,限制发送速度和包的接收和发送,这是我们做测试的一些极端手段,可以应用到测试里面。模拟网络限速,就是可以现在给服务器或者客户端请求,或者回复的速度,模拟出网络较差的情况,监听软件是否会出现问题。
点击Rules----->Costmize Rules
输入ctrl+f,弹出搜索框,这时候输入simulate,敲回车,出现,更改里面的数,对应的网络传输的速度就会发生响应的改变。
基于https进行抓包
一般请求我们抓不到https的包,相当于已经加密了,比如说百度,那我们该如何抓取呢?
勾选HTTPS中的Capture HTTPS CONNECTs 和Decrypt HTTPS traffic两项,抓取https的连接和解密https 的流量 ,就可以实现了,是不是非常简单。
有的小伙伴是不是还是抓不到呢?莫着急,看到上图右边的actions吗?点击一下,选择Reset All Certificates,重置系统中的证书,先删除,然后在下载就行了,具体看下图操作
点击确定,然后再出现图,再点击确认,确认删除,之后就会出现让你重新安装的弹框
最后如果出现下面这张图片,就说明你已经 大功告成了。
基于手机如何抓包
手机配置需要设置,
点击Tools---->Fiddler Options---->Connections
点击勾选Allow remote computers to connect
之后重启fiddler
手机设备连接WIFI
看手机是否可以访问http://FiddlerMachineIP:8888,就会返回Fiddler Echo Service 页面
需要设置wifi 代理,ip和端口号,这里填写的电脑的ip和端口号。现在你就可以点击任何应用,抓取你想要的app的包了。
效果展示图:
总结
好了,fiddler的分享就到这里了,只能说这个软件还是相对比较简单的,大家去多练练也就熟悉了,如果对你那么一丝丝帮助的话,请留下你的双击和关注,嘻嘻。。。
每日分享,如果此刻,你对自己的人数感觉到无能为力,迷茫无助,那么你只管努力就好,结果听从天意,努力的意义在于,增加事情发生的概率性,希望以后的日子里,放眼望去,全部都是自己喜欢的人和事。献给正在荆棘路上行走的你们还有自己。