Fiddler抓包工具总结

序章

Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了,每次去网站上找也很麻烦,所以搜集各大网络的资料,总结了一些常用的功能。

 

Fiddler 下载地址 :https://www.telerik.com/download/fiddler

Fiddler 离线下载地址:https://pan.baidu.com/s/1bpnp3Ef 密码:5skw

下载Fiddler要翻墙,我费了好大得劲才翻出去下载到…

win8之后用“Fiddler for .NET4”而win8之前用“Fiidler for .NET2”比较好

image

1. Fiddler 抓包简介

Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据。当然Fiddler很屌,在打开它的那一瞬间,它就已经设置好了浏览器的代理了。当你关闭的时候,它又帮你把代理还原了,是不是很贴心。。。

image

 

1) 字段说明

Fiddler想要抓到数据包,要确保Capture Traffic是开启,在File –> Capture Traffic。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。

image

Fiddler开始工作了,抓到的数据包就会显示在列表里面,下面总结了这些都是什么意思:

image

名称

含义

#

抓取HTTP Request的顺序,从1开始,以此递增

Result

HTTP状态码

Protocol

请求使用的协议,如HTTP/HTTPS/FTP等

Host

请求地址的主机名

URL

请求资源的位置

Body

该请求的大小

Caching

请求的缓存过期时间或者缓存控制值

Content-Type

请求响应的类型

Process

发送此请求的进程:进程ID

Comments

允许用户为此回话添加备注

Custom

允许用户设置自定义值

图标

含义

clip_image001[13]

请求已经发往服务器

clip_image002[4]

已从服务器下载响应结果

clip_image003[4]

请求从断点处暂停

clip_image004[4]

响应从断点处暂停

clip_image005[4]

请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)

clip_image006[4]

请求使用 HTTP 的 POST 方法

clip_image007[4]

请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道

clip_image008[4]

响应是 HTML 格式

clip_image009[4]

响应是一张图片

clip_image010[4]

响应是脚本格式

clip_image011[4]

响应是 CSS 格式

clip_image012[4]

响应是 XML 格式

clip_image013[4]

响应是 JSON 格式

clip_image014[4]

响应是一个音频文件

clip_image015[4]

响应是一个视频文件

clip_image016[4]

响应是一个 SilverLight

clip_image017[4]

响应是一个 FLASH

clip_image018[4]

响应是一个字体

clip_image019[4]

普通响应成功

clip_image020[4]

响应是 HTTP/300、301、302、303 或 307 重定向

clip_image021[4]

响应是 HTTP/304(无变更):使用缓存文件

clip_image022[4]

响应需要客户端证书验证

clip_image023[4]

服务端错误

clip_image0244

会话被客户端、Fiddler 或者服务端终止

 

 

2). Statistics 请求的性能数据分析

好了。左边看完了,现在可以看右边了

随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析了(不可能安装好了Fiddler一条请求都没有…):

image

 

3). Inspectors 查看数据内容

Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容:

image

 

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 不匹配

image

image

 

4). Composer 自定义请求发送服务器

Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求

Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestBody定制一些属性,如模拟浏览器User-Agent)

image

 

 

5). Filters 请求过滤规则

Fiters 是过滤请求用的,左边的窗口不断的更新,当你想看你系统的请求的时候,你刷新一下浏览器,一大片不知道哪来请求,看着碍眼,它还一直刷新你的屏幕。这个时候通过过滤规则来过滤掉那些不想看到的请求。

image

勾选左上角的Use Filters开启过滤器,这里有两个最常用的过滤条件:Zone和Host

1、Zone 指定只显示内网(Intranet)或互联网(Internet)的内容:

image

 

2、Host 指定显示某个域名下的会话:

image

如果框框为黄色(如图),表示修改未生效,点击红圈里的文字即可

 

 

6). Timeline 请求响应时间

在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间:

image

 

 

2. Fiddler 设置解密HTTPS的网络数据

Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。Fiddler是个很会装逼的好东西,大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的。

解密HTTPS需要手动开启,依次点击:

1. Tools –> Fiddler Options –>  HTTPS

image

2. 勾选Decrypt HTTPS Traffic

image

3. 点击OK

image

 

3. Fiddler 抓取Iphone / Android数据包

想要Fiddler抓取移动端设备的数据包,其实很简单,先来说说移动设备怎么去访问网络,看了下面这张图,就明白了。

image

可以看得出,移动端的数据包,都是要走wifi出去,所以我们可以把自己的电脑开启热点,将手机连上电脑,Fiddler开启代理后,让这些数据通过Fiddler,Fiddler就可以抓到这些包,然后发给路由器(如图):

image

1. 打开Wifi热点,让手机连上(我这里用的360wifi,其实随意一个都行)

image

2. 打开Fidder,点击菜单栏中的 [Tools] –> [Fiddler Options]

image

3. 点击 [Connections] ,设置代理端口是8888, 勾选 Allow remote computers to connect, 点击OK

image

4. 这时在 Fiddler 可以看到自己本机无线网卡的IP了(要是没有的话,重启Fiddler,或者可以在cmd中ipconfig找到自己的网卡IP)

image

image

 

5. 在手机端连接PC的wifi,并且设置代理IP与端口(代理IP就是上图的IP,端口是Fiddler的代理端口8888)

image

 

6. 访问网页输入代理IP和端口,下载Fiddler的证书,点击下图FiddlerRoot certificate

image

【注意】:如果打开浏览器碰到类似下面的报错,请打开Fiddler的证书解密模式(Fiddler 设置解密HTTPS的网络数据)

No root certificate was found. Have you enabled HTTPS traffic decryption in Fiddler yet?

208B4A022896FE5008CFDBD54105185D

          

13D99A1D77D5528F3EFBA0C3DEA3BD28

FDE79CDC9CB62CC6CF68F98C33CB281A

          

8F268C0A1192E2DF41BD0F5DEFD525D9

 

7. 安装完了证书,可以用手机访问应用,就可以看到截取到的数据包了。(下图选中是布卡漫画的数据包,下面还有QQ邮箱的)

image

 

4. Fiddler 内置命令与断点

Fiddler还有一个藏的很深的命令框,就是眼前,我用了几年的Fiddler都没有发现它,偶尔在别人的文章发现还有这个小功能,还蛮好用的,整理下记录在这里。

FIddler断点功能就是将请求截获下来,但是不发送,这个时候你可以干很多事情,比如说,把包改了,再发送给服务器君。还有balabala一大堆的事情可以做,就不举例子了。

image

命令

对应请求项

介绍

示例

?

All

问号后边跟一个字符串,可以匹配出包含这个字符串的请求

?google

>

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

放行所有中断下来的请求

g

 

示例演示:

?

image

>

image

<

image

=

image

@

image

select

image

cls

image

dump

image

 

断点命令:

断点可以直接点击Fiddler下图的图标位置,就可以设置全部请求的断点,断点的命令可以精确设置需要截获那些请求。如下示例:

image

命令:

bpafter

image

   

image

bps

image

image

 

bpv

image

image

 

g / go

image

image

 

文章来源:https://www.cnblogs.com/yyhh/p/5140852.html  ﹏猴子请来的救兵

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


fastjson2 是 fastjson 项目的重要升级,目标是为下一个十年提供一个高性能的 JSON 库,同一套 API 支持JSON/JSONB 两种协议,JSONPath 是一等公民,支持全量解析和部分解析,支持 Java 服务端、客户端Android、大数据场景。 fastjson 2 代码
博文目录文章目录问题描述解决方案问题描述阿里云ECS, 系统切换为 Aliyun Linux 2.1903 LTS 64位 后, SSH可以连接, SFTP无法连接, 端口 22 已添加到阿里云ECS网络安全组表现为 Xshell 可以连接, Xftp 使用 SFTP 协议无法连接, 一片空白, 很长时间也不报错提示, 鼠标挪动的时候显示为圆圈(等待响应)解决方案将 /etc/ssh/sshd_config 中的Subsystem sftp /usr/libexec/opens
博文目录文章目录创建项目创建代码仓库完成工程代码并提交推送到仓库application.propertiespom.xml创建构建计划设置流程配置阶段说明 测试阶段说明 部署定义远程服务器信息远程服务器鉴权创建 SSH 密钥录入凭据在 持续集成 的 构建脚本 中做 SSH 鉴权操作远程服务器设置触发规则设置变量与缓存CODING 持续集成 帮助文档当下 DevOps, CI/CD 等概念非常火, 我自己也想试试, 碰巧知道 CODING.NET 免费提供了这个能力, 所以来尝试一把, 好在最终有
下载CentOS官网CentOS下载CentOS-7-x86_64-DVD-2003.isoCentOS-7-x86_64-DVD-2003.iso安装
博文目录文章目录服务端客户端测试效果服务端配置到 nginx 反向代理FRP Releases使用frp进行内网穿透FRP 示例FRP 实例 通过自定义域名访问内网的 Web 服务FRP 参考 服务端配置FRP Linux Server ReleaseFRP Windows Client Release服务端在 linux 上执行 arch, 结果如果是 [X86_64] 即可选择 [linux amd64] 版本的 Release 包wget https://github.co
博文目录文章目录环境下载安装配置使用环境阿里云ECS(Aliyun Linux 2.1903 LTS 64位)下载https://www.oracle.com/java/technologies/oracle-java-archive-downloads.htmlJava SE 8 (8u202 and earlier) 可以用于商业Java SE 8 (8u211 and later) 不可以用于商业安装tar -zxvf jdk-8u202-linux-x64.tar.gz 得到
博文目录文章目录环境下载安装配置使用环境阿里云ECS(Aliyun Linux 2.1903 LTS 64位)下载https://maven.apache.org/download.cgi安装tar -zxvf apache-maven-3.6.3-bin.tar.gz 得到解压包配置在 /root/.bashrc 文件内添加如下内容export MAVEN_HOME=/mrathena/application/maven-3.6.3export PATH=$JAVA_HOME/
博文目录文章目录嵩山版(2020.08.03)阿里开发手册官网嵩山版(2020.08.03)手册的详细版叫做 码出高效
博文目录文章目录EncodingFontMavenGradleOtherPluginsEncodingsetting 搜索 encodFile | Settings | Editor | File Encodings, 3个 UTF-8File | Settings | Tools | SSH Terminal, 1个 UTF-8Fontsetting 搜索 fontFile | Settings | Editor | FontMavensetting 搜索 mavenFile |
博文目录文章目录环境下载安装配置使用参考环境阿里云ECS(Aliyun Linux 2.1903 LTS 64位)下载http://nginx.org/en/download.htmlhttp://nginx.org/download/nginx-1.18.0.tar.gz选择稳定版(Stable version)下载即可, 分 linux 和 windows 两种, linux 版下载的是源码, 需要自行编译安装tar -zxvf nginx-1.18.0.tar.gz 得到解压包
博文目录文章目录单密钥方式多密钥方式默认生成的 rsa密钥位置在 ~/.ssh, 如 C:Usersmrathena.ssh. 各代码托管平台是可以使用同一个SSH密钥的, 这样最方便, 但是为了更安全也可以配置在不同的平台使用不同的密钥单密钥方式cmd 执行命令 ssh-keygen -t rsa -b 4096 -C "generic", -t type rsa, -b 位数 4096位, 如果不用 -C 指定邮箱, 则会生成一个默认的注释, 该注释无关紧要, 不影响验证选项全部默认(
博文目录文章目录环境下载安装配置使用参考环境阿里云ECS(Aliyun Linux 2.1903 LTS 64位)下载https://github.com/git/git/releaseshttps://codeload.github.com/git/git/tar.gz/v2.28.0, 下载之后可以重命名为 git-2.28.0.tar.gz安装tar -zxvf apache-maven-3.6.3-bin.tar.gz 得到解压包make prefix=/mrathena/a
博文目录文章目录环境下载安装简单配置汉化皮肤JDKMaven简单使用环境阿里云ECS(Aliyun Linux 2.1903 LTS 64位)下载Jenkins 官网, 支持选择中文https://www.jenkins.io/选择 LTS 长期支持版的最新版下载, 这里是 2.235.3 LTS, Generic Java package (.war) 是 java war 包, 可以通过 java -jar jenkins.war 直接运行官网下载 wget http://mir
原因分析 是因为使用了pycharm的版本的问题。并不是flask框架本身的问题(不管你是如何设置的flask配置,通过加载config也好,还是通过run的时候传入形参也好,均不影响) 可以很明显的
背景 兜兜转转以为做测试不用接触这么多编程,结果不仅要接触 py,还要接触 java,还有 elixir,更有 Lua,啊 我绝望了 太久没玩 Java,连导入项目都不会了...特此记录一下侮辱性的时
1. 安装制作工具 mkisofs 2. Linux 操作系统镜像 iso 打包 3. 校验并写入 md5 值
最近在学习 MySQL 的 bin-log 时候考虑到数据备份的问题,突然想到如果能将数据通过 Linux 命令行方式备份到百度网盘,那是一件多么牛逼的事情。百度网盘有免费的 2TB 存储空间,而且有
作为一名开发者,熟悉使用 git 代码管理工具是一项必备的基本技能。git 相较 SVN 而言,其优点不言而喻。git 的功能非常强大,其包括的操作命令也非常的多,但是从实用性而言,很多命令可能我们一
kickstart 能实现 linux 系统的自动化安装,需要设置 ks.cfg 文件,而这个 ks.cfg 文件的生成最好使用 system-config-kickstart 工具生成,比较准确,也
介绍 GitBook是一个基于Node.js的命令行工具,可使用 Github/Git和Markdown来制作精美的电子书,GitBook 并非关 Git的教程。 导出格式有PDF、HTML等,需要添