前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hacker的Fiddler

Hacker的Fiddler

作者头像
用户3577892
发布2020-06-12 09:19:04
7010
发布2020-06-12 09:19:04
举报
文章被收录于专栏:数据科学CLUB

什么是Fiddler

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能十分powerful。

当然浏览器“F12”(开发者工具)也可以进行简单的分析,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够。

Wireshark是通用的抓包工具,功能十分齐全,对于只需要抓取http请求的应用来说,似乎有点大牛拉小车的赶脚。

Fiddler的原理

如上文提到的,其实Fiddler就是HTTP代理,那代理是啥意思呢,说白了客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,不太好想象,上图:

下载好Fiddler你还需要做两件事情:

  1. 因为Fiddler运行机制其实就是监听本地8888端口的HTTP请求,所以我们需要手动设置浏览器网络代理(IE不用设置,Fiddler启动时已将其代理设为127.0.0.1:8888),具体怎么做,直接看下图:

点击设置写为127.0.0.1:8888

2.因为Fiddler默认是只能抓取HTTP协议的,但是网络上大部分是HTTPS的网站,所以我们需要对他进行相应设置,在Fiddler页面中打开Tools下的options点击HTTPS选项卡,把勾勾全勾住,看下图:

介绍完配置问题,我可以打开Fiddler看看他的工作界面,对于一个四级考过,六级忘记报名的人来说,emmmm有点难度,当然你可以下载别人做好的汉化版,这里还是以官方版来介绍,毕竟英语在国际上地位我也不用多说。

Fiddler界面详细介绍

整个界面大体上分为3大部分:1.捕获到的全部sessions;2.Request对象信息;3.response对象信息

我用拙劣的英语简单的说明一下,看图:

  1. file主要包含了许多导入,导出sessions的方法
  2. Edit主要有网站的标记,和特定网站的寻找等方法,当然也可以通过“ctrl+f”打开find sessions这个功能
  1. Rules->performance->simulate modem speeds可以通过这个方法可以模拟恶劣的网络环境,这有什么用呢,其实在解决日常的支持需求中,WEB开发者经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动引起的,而服务器在面对这种恶劣的网络环境的健壮性不够,导致会出现一些意想不到的bug。而在正常的开发自测过程中很难去营造出这种恶劣的网络环境,使得这些bug较难被提前发现和修复。所以这个方法对于WEB开发者十分有用,其实这个慢的程度也是可以控制的,Rules->performance->customise rules打开会发现是用C++写的脚本,注释还蛮详细,找到下面这段

就可以自行更改上传和下载带宽,十分方便。

  1. Rules->user-agents我们可以自己设置以什么身份访问服务器

5.接下着重讲下Rules->automatic设置断点功能

首先说说设置断点可以实现什么:a.拦截响应数据,并进行修改;(可以做邪恶的事情,很简单,大家可以试试,我就不暗示了,不想被抓)b.修改请求数据中的头信息,实现相应功能,emmm比如说模拟真实用户请求;c.构建请求数据,随意进行数据提交。从这几种功能我们可以看出,断电功能分为两种类型:响应时的断点和请求时的断点

after response(响应时的断点)

通过点击after response可以把当前所有response全部拦截,我们也可以用命令 bpuafter 网站域名 就可以对某个网站进行拦截,大家可以感受一下Fiddler的魅力,首先我们截获一个网站,这个网站就不会被加载出来,修改其textview中的值,最后网页就变成我们想要的样子,看图:

before requests(请求时断点)

同样如果你是通过点击启动断点,那么所有的requests都会被你拦截,同样可以通过命令 bpu 网址域名 来实现特定请求的拦截,点击disable即可结束所有的拦截,什么方便nice....

6.既然上面都提到命令,那我在说说怎么使用quickexec命令行(在最下面一行,黑色的)常见的命令:

a.cls 清屏命令,清楚列表所有会话;

b.select命令可以选择某一类型的HTTP会话,比如说select xml找出所有XML网页类型的HTTP会话;

c.?命令可以查找网址中包含某字符串的会话信息,比如, ?qq 可以查看网址中包含 qq 字符串的会话信息;

d.help命令打开Fiddler官方使用手册;

e.ctrl+f 查找功能。

7.还有一个重头戏就是Fiddler的过滤器的使用(不用找了,我已经帮你勾上了)

过滤器有有三种功能:

  1. 过滤网站域名,用法看图就懂啦

当然你也可以使用通配符 *.sougo.com 这样你就可以把sougo.com下面的二级域名全部过滤下来(注意*的用法不同于正则表达式)

2.进程过滤,我们可以设置区分浏览器和非浏览器,只抓取非浏览器进程,比如手机抓包

最后点击actions中的run就可以让过滤器生效,十分方便

8.最后介绍一个Fiddler中的小玩意儿,十分方便的编码工具:TextWizard,直接看图吧

右边两大模块request和response都显示了他们一些基本的信息,这些信息的具体含义,大概用英语词典查3分钟就差不多了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学CLUB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档