一、Fiddler抓包工具简介
Fiddler是位于客户端和服务器端的HTTP代理。
Fiddler是目前最常用的http抓包工具之一。
Fiddler是功能非常强大,是web调试的利器。
二、Fiddler工作原理
总结:当浏览器向服务器请求数据时,被Fiddler截获,截获后再发送给服务器,当服务器向浏览器响应数据时,同样会被Fiddler截获,然后再发送给浏览器,所以我们能够在Fiddler中看到请求的报文和响应的报文。
关掉Fiddler、代理服务器会自动取消。如果Fiddler非正常退出,因为Fiddler没有自动注销,可能会造成网页无法访问。解决的办法是重新启动Fiddler。
三、Fiddler菜单栏介绍
File菜单
1、Capture Traffic:可以控制是否把Fiddler注册为系统代理。
2、New Viewer:打开一个新的fiddler窗口
3、Load Archive:用于重新加载之前捕获的以SAZ文件格式保存的数据包。
4、Save:支持以多种方式把数据包保存到文件中。
5、Import Sessions...:支持导入从其他工具捕获的数据包,也支持导入以其他格式存储的数据包。
6、Export Sessions...:把Fiddler捕捉到的回话以多种文件格式保存。
7、Exit:取消把Fiddler注册为系统代理,并关闭Fiddler。
Edit菜单
1、Copy:复制会话。
2、Remove:删除会话。
3、Select All:选择所有会话。
4、Undelete:撤销删除会话。
5、Paste as Session把剪贴板上的内容粘贴成一个或多个模拟的会话。
6、Mark:选择一种颜色标记选中会话。
7、Unlock for Editing 解锁会话。
8、Find Session...打开Find Session窗口,搜索捕获到的数据包。
Rules菜单
1、Hide Image Request:隐藏图片回话。
2、Hide CONNECTS:隐藏连接通道回话。
3、Automatic Breakpoints:自动在[请求前]或[响应后]设置断点。Ignore Image触发器控制这些断点是否作用于图片请求。
4、Customize Rules...:打开Fiddler脚本编辑窗口。
5、Require Proxy Authentication:,要求客户端安装证书。该规则可以用于测试HTTP客户端,确保所有未提交Proxy-Authorization请求头的请求会返回HTTP/407响应码。
6、Apply GZIP Encoding:只要请求包含具有gzip标识的Accept-Encoding请求头,就会对所有响应使用GZIP HTTP进行压缩(图片请求除外)。
7、Remove All Encoding:删除所有请求和响应的HTTP内容编码和传输编码
8、Hide 304s:隐藏响应为HTTP/304 Not Modified状态的所有回话。
9、Request Japanese Content:选项会把所有请求的Accept-Encoding请求头设置或替换为ja标识,表示客户端希望响应以日语形式发送。
10、User-Agents:把所有请求的User-Agent请求头设置或替换成指定值。
11、performance:模拟弱网测试速度。
Tools菜单
1、Options...:打开Fiddler选项窗口。
2、WinINET Options...打开IE的Internet属性窗口
3、Clear WinINET Cache:清空IE和其他应用中所使用的WinINET缓存中的所有文件。
4、Clear WinINET Cookies:清空IE和其他应用中所发送的WinINET Cookie
5、TextWizard...:选项会启动TextWizard窗口,对文本进行编码和解码。
6、Compare Session:比较回话。
7、Reset Script:重置Fiddler脚本。
8、Sandbox:打开http://webdbg.com/sandbox/
9、View IE Cache:打开IE缓存窗口。
View菜单
1、Show Toolbar:控制Fiddler工具栏是否可见
2、Default Layout、Stacked Layout、Wide Layout三种界面布局
3、Minimize to Tray:最小化Fiddler到系统托盘(快捷键:CTRL+M )
4、Squish Session List:控制回话列表是否水平收缩。
5、AutoScroll Session list:添加新的回话时,自动滚动到回话列表底部
四、Fiddler工具栏介绍
1.备注功能
2.重新发送请求,快捷键:R键。
3.删除请求
4.当有请求前断点时,点击去发送请求。
5.流模式。(默认是缓冲模式)
6.解码
7.保持回话的数量。
8.选择你想要抓包或者监听的程序
9.查找
10.保存所有会话,文件名以.saz为扩展名
11.截图
12.计时器
13.快捷的打开IE浏览器
14.清除IE缓存
15.文本的编码解码工具
16.分离面板
17.MSDN查询
18.本机的信息
五、Fiddler回话列表详解
主要包含:1.请求的ID编号、2. http响应状态码、3.会话使用的协议、4.请求发送到的服务器主机名、5.数据包在服务器中的路径和文件、6.响应body的字节数。7.响应头信息Cache-Control的值、8、响应头信息Content-Type的值、9.发起请求的本地windows进程、10.注释、11.自定义备注。
六、Fiddler状态栏详解
1、显示的Fiddler是否处于捕捉状态(开启/关闭状态),可以点击该区域切换。
2、显示当前捕捉哪些进程。
All Processes 捕获所有进程的请求
Web Browsers 捕获 Web 浏览器的请求,应该特指 IE
Non-Browser 捕获非 Web 浏览器的请求
Hide All 隐藏所有请求
3、显示当前断点设置状态,通过鼠标点击切换。有三种:
不设置断点
所有请求在断点处被暂停
所有响应在断点处被暂停
4,显示当前共捕获了多少回话(如:300,表示共捕获了300个会话,如:10/300,表示当前选择10个会话,共捕获300个会话)。
5,第五区块,描述当前状态。
如果是刚打开Fiddler,会显示什么时间加载了CustomRules.js;如果选择了一个会话,会显示该会话的URL;如果在命令行输入一个命令,就会显示命令相关信息。
HTTPS请求设置
依次点击 Tools->Options->https,进入https设置页面
七、断点操作
在最下面黑框口里输入
打断点 bpu URL,取消断点bpu回车
修改Requests方法:Rules---->Automatic Breakpoints---->Before Requests
以论坛发布帖子为例,修改请求前数据内容,
发布帖子,此时请求被fiddler拦截掉,将右侧requests body里面的字段message内容前新增内容:“篡改requests数据成功!”,然后点击Run to Completion,先关闭掉拦截Rules---->Automatic Breakpoints---->Disabled,其他请求都放过,点击工具栏中的“Go”
修改Responses方法:Rules---->Automatic Breakpoints---->After Responses,方法跟修改Requests类似,无非修改的内容变成了Response。
八、fiddler过滤会话
问题:每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。
期望:只想抓取自己想要的请求
步骤:
在Filers面板中勾选“Use Filters”,并在Hosts区域,设置以下三个选项:
1).第一项有三个选项,分别是“No zone filter”“Show Only Intranet Hosts”“Show Only Internet Hosts”,不做更改;
2).第二项有四个选项,分别是:
No Host Filter”不设置hosts过滤“;
Hide The Following Hosts”隐藏过滤到的域名;
“Show Only The Following Hosts”只显示过滤到的域名;
“Flag The Following Hosts”标记过滤到的域名;
选中“Show Only The Following Hosts”,在文本框内输入需要过滤的域名,多个域名使用”;“分号分割。fiddler默认会检查http头中设置的host,强制显示http地址中德域名。
九、弱网测试
fiddler提供了一个功能,让我们模拟低速网路环境…启用方法如:Rules → Performances → Simulate Modem Speeds
.自己定义Modem Speeds 究竟要多快…点开Rules → Customize Rules
找m_SimulateModem这个字,你会找到下面这段:这就是他模拟网路速度的原理,每上传/下载1KB 要delay 多久
当你存档之后,原本已经勾选的Simulate Modem Speeds 会被取消勾选,要记得再到Rules → Performances → Simulate Modem Speeds 勾选
十、模拟404,403
1、打开Fiddler 找到AutoResponder
2、选择Enable automatic reaponses 和Unmatched requests passthrough
十一、App抓包
手机抓取需要配置远程连接,在 Tools ->Options 菜单下,选择Connections标签并配置如下:
监听端口 8888 并允许远程连接
第一步:手机和电脑连接同一个网络,打开手机浏览器,输入http://ip:端口号
第二步:前往之后会跳转到证书下载页
点击FiddlerRootcertificate下载证书;
第三步:点击下载之后,安装证书并起个名字,随便写就行,点击确定;
第四步:要求设置一个手机密码,自己设置一个
第五步:更改手机无线网的代理
手机系统设置-无线网-点击高级,代理选择手动,主机名就是fiddler的电脑ip地址,端口号,就是fiddler的端口号,与浏览器中ip:端口号保持一致,点击确定即可,
操作手机,电脑fiddler中会显示一些http信息,成功;