网络抓包 Fiddler
1. Fiddler 抓包简介
Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据。当然Fiddler很屌,在打开它的那一瞬间,它就已经设置好了浏览器的代理了。当你关闭的时候,它又帮你把代理还原了,是不是很贴心。
1) 字段说明
Fiddler想要抓到数据包,要确保Capture Traffic是开启,在File –> Capture Traffic。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。
Fiddler开始工作了,抓到的数据包就会显示在列表里面,下面总结了这些都是什么意思:
名称 |
含义 |
---|---|
# |
抓取HTTP Request的顺序,从1开始,以此递增 |
Result |
HTTP状态码 |
Protocol |
请求使用的协议,如HTTP/HTTPS/FTP等 |
Host |
请求地址的主机名 |
URL |
请求资源的位置 |
Body |
该请求的大小 |
Caching |
请求的缓存过期时间或者缓存控制值 |
Content-Type |
请求响应的类型 |
Process |
发送此请求的进程:进程ID |
Comments |
允许用户为此回话添加备注 |
Custom |
允许用户设置自定义值 |
图标 |
含义 |
|
请求已经发往服务器 |
|
已从服务器下载响应结果 |
|
请求从断点处暂停 |
|
响应从断点处暂停 |
|
请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body) |
|
请求使用 HTTP 的 POST 方法 |
|
请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道 |
|
响应是 HTML 格式 |
|
响应是一张图片 |
|
响应是脚本格式 |
|
响应是 CSS 格式 |
|
响应是 XML 格式 |
|
响应是 JSON 格式 |
|
响应是一个音频文件 |
|
响应是一个视频文件 |
|
响应是一个 SilverLight |
|
响应是一个 FLASH |
|
响应是一个字体 |
|
普通响应成功 |
|
响应是 HTTP/300、301、302、303 或 307 重定向 |
|
响应是 HTTP/304(无变更):使用缓存文件 |
|
响应需要客户端证书验证 |
|
服务端错误 |
|
会话被客户端、Fiddler 或者服务端终止 |
2). Statistics 请求的性能数据分析
好了。左边看完了,现在可以看右边了
随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析了(不可能安装好了Fiddler一条请求都没有…):
3). Inspectors 查看数据内容
Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容:
4). AutoResponder 允许拦截指定规则的请求
AutoResponder允许你拦截指定规则的求情,并返回本地资源或Fiddler资源,从而代替服务器响应。
看下图5步,我将“baidu”这个关键字与我电脑“f:\Users\YukiO\Pictures\boy.jpeg”这张图片绑定了,点击Save保存后勾选Enable rules,再访问baidu,就会被劫持。
这个玩意有很多匹配规则,如:
1. 字符串匹配(默认):只要包含指定字符串(不区分大小写),全部认为是匹配
字符串匹配(baidu) 是否匹配 http://www.baidu.com 匹配 http://pan.baidu.com 匹配 http://tieba.baidu.com 匹配 2. 正则表达式匹配:以“regex:”开头,使用正则表达式来匹配,这个是区分大小写的
字符串匹配(regex:.+.(jpg | gif | bmp ) $) 是否匹配 http://bbs.fishc.com/Path1/query=foo.bmp&bar 不匹配 http://bbs.fishc.com/Path1/query=example.gif 匹配 http://bbs.fishc.com/Path1/query=example.bmp 匹配 http://bbs.fishc.com/Path1/query=example.Gif
4). Composer 自定义请求发送服务器
Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求
Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestBody定制一些属性,如模拟浏览器User-Agent)
5). Filters 请求过滤规则
Fiters 是过滤请求用的,左边的窗口不断的更新,当你想看你系统的请求的时候,你刷新一下浏览器,一大片不知道哪来请求,看着碍眼,它还一直刷新你的屏幕。这个时候通过过滤规则来过滤掉那些不想看到的请求。
勾选左上角的Use Filters开启过滤器,这里有两个最常用的过滤条件:Zone和Host
1、Zone 指定只显示内网(Intranet)或互联网(Internet)的内容:
2、Host 指定显示某个域名下的会话:
如果框框为黄色(如图),表示修改未生效,点击红圈里的文字即可
6). Timeline 请求响应时间
在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间:
2. Fiddler 设置解密HTTPS的网络数据
Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。Fiddler是个很会装逼的好东西,大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的。
解密HTTPS需要手动开启,依次点击:
1. Tools –> Fiddler Options –> HTTPS
2. 勾选Decrypt HTTPS Traffic
3. 点击OK
3. Fiddler 抓取Iphone / Android数据包
想要Fiddler抓取移动端设备的数据包,其实很简单,先来说说移动设备怎么去访问网络,看了下面这张图,就明白了。
可以看得出,移动端的数据包,都是要走wifi出去,所以我们可以把自己的电脑开启热点,将手机连上电脑,Fiddler开启代理后,让这些数据通过Fiddler,Fiddler就可以抓到这些包,然后发给路由器(如图):
1. 打开Wifi热点,让手机连上(我这里用的360wifi,其实随意一个都行)
2. 打开Fidder,点击菜单栏中的 [Tools] –> [Fiddler Options]
3. 点击 [Connections] ,设置代理端口是8888, 勾选 Allow remote computers to connect, 点击OK
4. 这时在 Fiddler 可以看到自己本机无线网卡的IP了(要是没有的话,重启Fiddler,或者可以在cmd中ipconfig找到自己的网卡IP)
5. 在手机端连接PC的wifi,并且设置代理IP与端口(代理IP就是上图的IP,端口是Fiddler的代理端口8888)
6. 访问网页输入代理IP和端口,下载Fiddler的证书,点击下图FiddlerRoot certificate
【注意】:如果打开浏览器碰到类似下面的报错,请打开Fiddler的证书解密模式(Fiddler 设置解密HTTPS的网络数据)
No root certificate was found. Have you enabled HTTPS traffic decryption in Fiddler yet?
7. 安装完了证书,可以用手机访问应用,就可以看到截取到的数据包了。(下图选中是布卡漫画的数据包,下面还有QQ邮箱的)
4. Fiddler 内置命令与断点
Fiddler还有一个藏的很深的命令框,就是眼前,我用了几年的Fiddler都没有发现它,偶尔在别人的文章发现还有这个小功能,还蛮好用的,整理下记录在这里。
FIddler断点功能就是将请求截获下来,但是不发送,这个时候你可以干很多事情,比如说,把包改了,再发送给服务器君。还有balabala一大堆的事情可以做,就不举例子了。
命令 |
对应请求项 |
介绍 |
示例 |
---|---|---|---|
? |
All |
问号后边跟一个字符串,可以匹配出包含这个字符串的请求 |
|
> |
Body |
大于号后面跟一个数字,可以匹配出请求大小,大于这个数字请求 |
>1000 |
< |
Body |
小于号跟大于号相反,匹配出请求大小,小于这个数字的请求 |
<100 |
= |
Result |
等于号后面跟数字,可以匹配HTTP返回码 |
=200 |
@ |
Host |
@后面跟Host,可以匹配域名 |
@www.baidu.com |
select |
Content-Type |
select后面跟响应类型,可以匹配到相关的类型 |
select image |
cls |
All |
清空当前所有请求 |
cls |
dump |
All |
将所有请求打包成saz压缩包,保存到“我的文档\Fiddler2\Captures”目录下 |
dump |
start |
All |
开始监听请求 |
start |
stop |
All |
停止监听请求 |
stop |
断点命令 | |||
bpafter |
All |
bpafter后边跟一个字符串,表示中断所有包含该字符串的请求 |
bpafter baidu(输入bpafter解除断点) |
bpu |
All |
跟bpafter差不多,只不过这个是收到请求了,中断响应 |
bpu baidu(输入bpu解除断点) |
bps |
Result |
后面跟状态吗,表示中断所有是这个状态码的请求 |
bps 200(输入bps解除断点) |
bpv / bpm |
HTTP方法 |
只中断HTTP方法的命令,HTTP方法如POST、GET |
bpv get(输入bpv解除断点) |
g / go |
All |
放行所有中断下来的请求 |
示例演示:
select
cls
dump
断点命令:
断点可以直接点击Fiddler下图的图标位置,就可以设置全部请求的断点,断点的命令可以精确设置需要截获那些请求。如下示例:
命令:
bpafter
bps
bpv
g / go
网络抓包 Fiddler的更多相关文章
- 网络抓包工具 Fiddler
网络抓包工具 Fiddler 下载网址 http://www.telerik.com/fiddler 简单介绍 Fiddler是一个http协议调试代理工具,它能够记录并检查全部你的电脑和互联网之间的 ...
- 网络抓包wireshark(转)
转自 网络抓包wireshark 抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经 ...
- 网络抓包及Http Https通信协议分析
Wireshark基本介绍和学习TCP三次握手 之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS. 这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括ht ...
- CatchPacket网络抓包软件
CatchPacket网络抓包软件 qq 22945088431.技术特点:基于WinPcap库,c# winform2.实现获取机器所有网卡,可任意选择监听3.可以捕获常见网络协议arp dns ...
- 跨平台网络抓包工具-Microsoft Message Analyzer
Microsoft Message Analyzer (MMA 2013)是微软最受欢迎的Netmon的最新版本. 在Netmon网络跟踪和排除故障功能的基础上提供了更强大的跨平台网络分析追踪能力.园 ...
- Microsoft Message Analyzer (微软消息分析器,“网络抓包工具 - Network Monitor”的替代品)官方正式版现已发布
来自官方日志的喜悦 被誉为全新开始的消息分析器时代,由MMA为您开启,博客原文写的很激动,大家可以点击这里浏览:http://blogs.technet.com/b/messageanalyzer/a ...
- 网络抓包工具-Wireshark学习资料
wireshark一个非常牛逼的网络抓包工具.转载一系列博文 一站式学习Wireshark(一):Wireshark基本用法 一站式学习Wireshark(二):应用Wireshark观察基本网络协议 ...
- 三种经典iPhone上网络抓包方法详解
此文章来自:听云博客 很多时候需要网络抓包分析,在iPhone上抓包稍有不同,下面介绍三种常用的方式.分析工具以wireshark为例. 一.最简单的方式:用PC作为热点,在PC上抓包 优点:简单 缺 ...
- HttpWatch网络抓包工具的使用
HttpWatch网络抓包工具是专为IE浏览器集成的一款网络拽包工具. 是一款强大的网页数据分析软件,是最好用的抓包工具,httpwatch可以抓到上传视屏图片的包,一般的抓包软件是抓不到的.打开 ...
随机推荐
- 洛谷 P1984 [SDOI2008]烧水问题 解题报告
P1984 [SDOI2008]烧水问题 题目描述 把总质量为1kg的水分装在n个杯子里,每杯水的质量均为(1/n)kg,初始温度均为0℃.现需要把每一杯水都烧开.我们可以对任意一杯水进行加热.把一杯 ...
- matplotlib imshow
简单用法: imshow()函数格式为: matplotlib.pyplot.imshow(X, cmap=None) X: 要绘制的图像或数组. cmap: 颜色图谱(colormap), 默认绘制 ...
- 压缩和解压缩文件tar, tar.gz and tar.bz2
1, 对于tar.gz 压缩:tar -zcvf archive-name.tar.gz directory-name 解压:tar -zxvf prog-1-jan-2005.tar.gz -C / ...
- 【LOJ#6282】数列分块6
题目大意:给定一个由 N 个数组成的序列,维护两种操作:单点询问,单点插入.N < 100000 题解:在块内维护一个链表,支持动态插入数字,同时对于非随即数据来说,若块的大小过大,需要重构. ...
- HTTP/1.1 100 Continue - I 服了 You
今天用 c 的 socket() 模拟发送http请求:上传一张图片到服务器. 在本地测试,本地电脑: xp, iis5.1 经过半天时间对 http post file 协议的了解,代码已经写好,测 ...
- 多线程状态下调用SimpleDateFormat.format()抛出 ArrayIndexOutOfBoundsException 异常
本来想在类的顶部设置一个 静态的SimpleDateFormat常量 public final static DateFormat dateFormatGMT = new SimpleDateForm ...
- Sublime Text3—系统设置
摘要 软件的设置分为系统设置和快捷键设置两项,这次分享系统设置,Sublime Text3-自带快捷键介绍前面已分享过. 正文 菜单依次选择Preferences | Settings,我们修改设置不 ...
- oi程序提交注意:bool
比如我一个程序用了bool类型(#include<stdbool.h>) 在poj以c的方式提交不通过显示Compile Error,而用gcc的方式提交通过了, 也许其它的#includ ...
- 2018.9青岛网络预选赛(B)
传送门:Problem(B) https://www.cnblogs.com/violet-acmer/p/9664805.html 参考资料: https://blog.csdn.net/qq_40 ...
- k8s技术--Kubernetes集群kubectl命令的常见使用方法
简介:kubectl是一个命令行界面,用于运行针对Kubernetes群集的命令. 语法: kubectl [command] [TYPE] [NAME] [flags] command:指定您希望对 ...