Fiddle简述

Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它仅仅暴露http通讯还有提供一个用户友好的格式。

Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。

Fiddle工作原理

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

浏览器设置代理

进入浏览器->设置->高级设置->打开代理设置->连接->局域网设置->代理服务器-高级->设置HTTP地址和端口

Fiddle配置

运行Fiddle.exe进入程序,点击tools->options,点击connections,端口8888可修改为其他数字,并勾选Allow remote computers to connect,点击OK。

抓取https数据包

在options弹框中切换至HTTPS,勾选图中标记的2个选项并点击OK,安装证书

 抓取手机APP数据包

(1)确认电脑和手机连的同一局域网

(2)查看电脑ip并设置手机wifi的HTTP代理

(3)

打开手机 浏览器,输入192.168.xxx.xx:8888(即上一步的IP:端口),这一步Android和IOS的手机是一样的

如出现以下页面则表示正常,点击红框下载证书,如访问不了地址或者页面提示拒绝访问之类的表示配置有误,再检查一下哪里没有配置好

(4)下载证书成功后,Android手机需要给证书命名,任意输入一个名字即可;

(5)手机上设置代理后,这时候fiddler上抓到的是pc和app所有的请求,如果pc上打开网址,会很多,这时候就需要开启过滤功能了。

打开fiddler>Tools>Fiddler Options>HTTPS>…from remote clients only,勾选这个选项就可以了

…from all processes :抓所有的请求

…from browsers only :只抓浏览器的请求

…from non-browsers only :只抓非浏览器的请求

…from remote clients only:只抓远程客户端请求

注意:如果手机在设置完代理后显示无法上网,也无法访问192.168.xxx:8888,以下是解决办法:

(1)输入regedit打开注册表,输入路径:计算机\HKEY_CURRENT_USER\Software\Microsoft\Fiddler2后回车

(2)新建QWORD,值设置80

(3)打开fiddler,进入Rules -->Customize Rules,
(4)ctrl+f,搜索OnBeforeRequest
(5)在OnBeforeRequest方法最后添加一行


if (oSession.host.toLowerCase() == "webserver:8888")
{
oSession.host = "webserver:80";
}

(6)重启fiddler就可以了

Fiddle使用

(1)Fiddle的基本界面

File: 文件

capture Traffic:是否启动抓包;勾选后左下角显示capturing。是开始抓取;不勾选是不抓取,无capturing。

new viewer: 新建fiddler窗口。

save:将当前抓取的会话进行保存。

Edit:编辑

copy:对所选的信息进行copy,包含对session、URL、headers等信息进行copy。

Remove:删除,包含删除选择的session,未选择的session、删除所有的。

Select All:将回话区所有的会话全选。

Undelent:将上一次删除的会话进行复原。

Paste as sessions:将以前的会话粘贴回来。

Mack:自定义不同状态的会话的显示的颜色。

Unlock for Editing:不允许进行编辑。

Find sessions: 对会话进行快捷查找,相当于Ctrl+F。

Rules:规则

Hide Image Requests:隐藏图片请求。

Hide connects:隐藏connects请求。

Automatic Breakpoints:修改请求或者响应的内容,做断点使用较多。

Customize Rules:调取脚本操作,多用于修改网络、其他自定义时使用。

User-Agents:模拟其他浏览器进行请求。

Performance:一个性能测试工具,包含:模拟调制解调器速度、禁止缓存、显示TTL8。

Tools:工具

Options:一些设置项,包含:对抓取接口是http、HTTPS类型设置、获取证书、设置代理的端口号等信息。

Wininet options:对PC端进行设置代理。

Clear wininet cache:清除缓存。

Clear wininet cookies:清除cookies。

TextWizard: 编码工具,可以用来进行编码、解码、转码操作。

compare sessions:将两个sessions会话进行对比,正常使用需要安装插件。

Reset Script:将脚本进行还原。

view IE cache:视图缓存

New sessions Clipboard…:新建会话剪切板

Hosts:对host进行修改、配置。

快捷菜单栏

请求参数显示区

headers:主要显示选择的请求的信息,包含、请求头、请求体、body等信息。

textView: 以文本的形式显示请求参数以及body值。

SyntaxView:以脚本的形式显示请求参数以及body值(需要安装Syntaxview插件)。

WebForms: 以列表的形式显示请求参数以及body值。

HexView:以16进制形式显示请求参数以及body值。

Auth:显示header中Proxy-Authorization和Authorization值。

Cookies:以直观的界面显示header中的cookies的值。

Raw:将整个请求以纯文本的形式显示。

Josn:以josn串形式显示请求参数以及body值。

XML:以XML的形式显示请求参数以及body值。

响应结果显示区

Transformer:响应信息的压缩编码格式,对响应信息进行编码、解码、转码操作。

Headers:响应信息,包含响应状态、响应头、响应体。

textView:以文本的形式展示响应结果。

SyntaxView: 以脚本的形式展示响应结果(需要安装插件)。

ImageView:当响应中包含图片时可以用此功能进行查看图片以及图片信息。

HexView:以16进制展示响应结果。

WebView:以列表形式展示响应结果。

Auth:展示响应结果中部分信息。

Caching:响应的缓存过期时间或者缓存

Cookies:展示响应中的cookies信息。

Raw:以纯文本形式展示响应头。

json:以JSON形式展示响应结果。

XML:以XML形式展示响应结果。

(2)QuickExec命令行的使用

Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。

常见的命令有:

①cls 清屏(Ctrl+x也可以清屏)

②对目标主机执行DNS查找,并在LOG选项卡上显示结果

!dns www.example.com

!nslookup www.example.com

③select 选择会话的命令

④?.png 用来选择png后缀的图片

⑤bpu 截获request

⑥在另一个端口上设置一个附加的侦听器,可以选择通过HTTPS证书进行保护

!listen 8889

!listen 4443 localhost

!listen 444 secure.example.com

⑦选择名称为Header或SessionFlag包含指定字符串的任何会话。

select ui-comments slow

select ui-bold * <-- unless preceded by a slash, * means any value

select ui-comments \* <-- Find comments with a *

selec**加粗样式**t @Request.Accept html <-- Find requests with Accept: html

select @Response.Set-Cookie domain <- Find responses that Set-Cookie on a domain

⑧quit

(3)AutoResponder 允许拦截指定规则的请求

AutoResponder允许你拦截指定规则的求情,并返回本地资源或Fiddler资源,从而代替服务器响应。

看下图5步,我将“baidu”这个关键字与我电脑“C:(IBZ0FBB8J3LU_32]73H}ZB.jpg”这张图片绑定了,点击Save保存后勾选Enable rules,再访问baidu,就会被劫持。

(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 便会显示指定内容从服务端传输到客户端的时间:

(7)Fiddler中设置断点的两种方式

第一种 before response:这个是打在request请求的时候,未到达服务器之前

第二种: after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前。

全局断点

Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。
1.全局断点就是中断fiddler捕获的所有请求,先设置下,点击rules-> automatic breakpoint ->before requests

当我们设置断点后,进行HTTP请求,数据包顺序列会有中断的标记,单击该数据包可以看到在右侧会增加一行操作栏。这个时候我们在前端是没有正常加载网页的,点击【Run to Completion】后可以返回响应数据。

概述为四步操作
1)点击有断点标识接口
2)右侧Inspectors-WebForms修改入参
3)点击绿色按钮:Run to completion
4)接口会以修改后的入参进行请求
由此可见,我们的断点已经设置成功,并且成功修改了HTTP的请求数据。

after response简述如下:
after response: 也就是服务器响应之后,在Fiddler将响应传回给客户端之前
1)点击有断点标识接口
2)修改返回值TextView值
3)命令行输入Go
4)接口会将修改后的出参返回页面

单个断点

已经知道了某个接口的请求地址,这时候只需要针对这一条请求打断点调试,在命令行中输入指令就可以了
请求前断点(before response): bpu

论坛登录接口:https://passport.cnblogs.com/user/signin
命令行输入:bpu https://passport.cnblogs.com/user/signin 回车
请求登录接口的时候,就会只拦截登录这个接口了,此时可以修改任意请求参数
取消断点,在命令行输入: bpu 回车就可以了

转载出处:https://blog.csdn.net/szgyunyun/article/details/104605149

糊糊的学习笔记--Fiddle抓包的更多相关文章

  1. 笔记-网络-抓包-wireshark

    笔记-网络-抓包-wireshark 1.      开始 环境:win8笔记本,无线网 1.1.    无线网卡设置 因为需抓捕无线网卡上的数据包,需要进行一项设置,如捕获有线网卡,无需设置. 打开 ...

  2. [转帖]Linux学习笔记之rpm包管理功能全解

    Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...

  3. Fiddle 抓包工具

    1.在AutoResponder中拖取所需修改文件,在最下方进行文件替换,然后刷新页面: 2.连接手机: 在tools—options—connections下勾选Allow remote compu ...

  4. Nutch学习笔记二——抓取过程简析

    在上篇学习笔记中http://www.cnblogs.com/huligong1234/p/3464371.html 主要记录Nutch安装及简单运行的过程. 笔记中 通过配置抓取地址http://b ...

  5. Fiddler-学习笔记-远程抓包

    1 操作系统低于win7用 fiddler 2 win7 或win7以上版本,用 fiddler4片本 2 fiddler开关:左下角或点击F12控件fiddler开关,开=capturing 3 启 ...

  6. 【Fiddler学习】Fiddler抓包HTTPS请求和手机抓包

    一.安装Fiddler 百度搜索:Fiddler抓包工具,然后安装即可. 然后打开Fiddler工具,打开浏览器随意输入任何网址,就可以在Fiddler看到抓包信息. 但是:默认情况下,Fiddler ...

  7. FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

    一.为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的.花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问. 期间不会弹出输入用户 ...

  8. Fiddle抓包应用概述

    抓包: 抓包(packet capture)就是将网络传输发送与接收的数据包进行截获.重发.编辑.转存等操作,也用来检查网络安全.抓包也经常被用来进行数据截取等.说简单点就是抓取前端发送给服务器的数据 ...

  9. Nodejs全站开发学习系列 & 深入浅出Node学习笔记 & Spider抓取

    https://course.tianmaying.com/node 这个系列的文章看起来很不错,值得学习一下. /Users/baidu/Documents/Data/Interview/Web-S ...

随机推荐

  1. Stream并行流详解

    1.并行与并发的区别 在说到并行的时候,相信很多人都会想到并发的概念.那么并行和并发两者一字之差,有什么区别呢? 并行:多个任务在同一时间点发生,并由不同的cpu进行处理,不互相抢占资源 并行: 并发 ...

  2. 【升级版】如何使用阿里云云解析API实现动态域名解析,搭建私有服务器【含可执行文件和源码】

    原文地址:http://www.yxxrui.cn/article/179.shtml 未经许可请勿转载,如有疑问,请联系作者:yxxrui@163.com 我遇到的问题:公司的网络没有固定的公网IP ...

  3. python序列(三)列表元素访问与计数

    1.使用下标直接访问列表元素,如果指定下标不存在,则抛出异常. >>> alist[3] 1 >>> alist[3]=5.5 >>> alist ...

  4. Java安全之初探weblogic T3协议漏洞

    Java安全之初探weblogic T3协议漏洞 文章首发自安全客:Java安全之初探weblogic T3协议漏洞 0x00 前言 在反序列化漏洞里面就经典的还是莫过于weblogic的反序列化漏洞 ...

  5. Pytest测试框架(二):pytest 的setup/teardown方法

    PyTest支持xUnit style 结构, setup() 和 teardown() 方法用于初始化和清理测试环境,可以保证测试用例的独立性.pytest的setup/teardown方法包括:模 ...

  6. 【Go】四舍五入在go语言中为何如此困难

    四舍五入是一个非常常见的功能,在流行语言标准库中往往存在 Round 的功能,它最少支持常用的 Round half up 算法. 而在 Go 语言中这似乎成为了难题,在 stackoverflow ...

  7. mysql事务_事务隔离级别详解

    使用事务语法 1. 开启事务start transaction,可以简写为 begin 2. 然后记录之后需要执行的一组sql 3. 提交commit 4. 如果所有的sql都执行成功,则提交,将sq ...

  8. 2. C++中的引用

    1.  引用的基本使用 作用:给变量起别名 语法:数据类型  &别名=原名 注意: 别名数据类型与原名数据类型一致. 引用必须初始化. 引用一旦初始化后,就不可以更改(只能作为一个变量的别名) ...

  9. DBF 文件 ORACLE 数据库恢复

    DBF 文件 ORACLE 数据库恢复 清·魏源<庸易通义>:"至道问学之有知无行,分温故为存心,知新为致知,而敦厚为存心,崇礼为致知,此皆百密一疏." 起因 在我们的 ...

  10. ARM CPU的SVC模式

    关于ARM CPU模式中的SVC Arm中CPU的模式 [第一方面] 系统sys模式 VS 管理svc模式 首先,sys模式和usr模式相比,所用的寄存器组,都是一样的,但是增加了一些访问一些在usr ...