Hacker的Fiddler

2020-06-12 09:19:04 浏览数 (1)

什么是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分钟就差不多了。

0 人点赞