【保姆级教程】 (七)全网最强HTTP+Fiddler抓包实战超级全面图文教程,Fiddler状态面板详解以及使用QuickExec命令行执行js脚本命令。
Fiddler状态面板详解:开启/关闭捕获(F12),筛选All Processes/Web Browsers/Non-Browser/Hide All,断点控制请求或响应暂停。显示捕获的session总数及选中数量,URL预览。QuickExec命令行(Alt+Q)支持多种命令和快捷键操作,如?text
, >size
, <size
, =code
, @host
, select type
, cls
, dump
, start
, stop
,便于快速管理和清理会话。
2.状态面板概览
Fiddler的状态面板概览,如下图所示:
3.状态面板详解
Fiddler底端状态栏面板详解,如下图所示:
3.1Capturing
显示的 Fiddler 是否处于捕捉状态,(开启状态)、(关闭状态),可以用快捷键 F12 切换或者点击该区域切换。此处与菜单栏中 File→Capture Traffic 效果是一致的,默认底端状态栏此处是有 Caturing,有它才表示 fiddler 捕获请求。
3.2All Processes
这里有 All Processes,Web Browsers,Non-Browser,Hide All 几个选项,这个几个选项顾名思义,但要注意的是这些不是筛选当前 session 框中的 session,而是选中需要筛选的状态之后,后面的请求会按照此状态来筛选。显示当前捕捉哪些进程的通讯。前提是被捕获的进程必须使用 HTTP 代理:127.0.0.1:8888
All Processes —— 捕获所有进程的请求
Web Browsers —— 捕获 Web 浏览器的请求,应该特指 IE
Non-Browser —— 捕获非 Web 浏览器的请求
Hide All —— 隐藏所有请求
All Processes(进程筛选)可以对抓包进行筛选,可以根据自己情况选择。也就是说在抓包的时候,是显示所有会话进程还是浏览器请求的会话进程 还是不是浏览器请求的会话进程 或者全部隐藏,根据自己的需求进行选择就行了。如下图所示:
3.3断点
空白小区域,这个小区域,如果你用鼠标点击一下就会出现断点的设置,如下图所示:
显示当前断点设置状态,通过鼠标点击切换。可以有三种:
—— 不设置断点
—— 所有请求在断点处被暂停,意思就是请求之前断点, 也就是当这个状态启动的时候,那么你发送的请求就会卡在这里。
—— 所有响应在断点处被暂停, 也就是说服务器已经返回请求的数据了,但是被Fiddler在中间卡住了,还没有到客户端这一边。
3.4数字/数字
显示当前共捕获了多少 session(如:300,表示共捕获了 300 个)。
如果选择了 session,会显示共选择了多少 session 及 session 总数(如:10/300,表示当前选择 10 个 session,共 300 个 session)。
第一个数字表示选中的session,第二个数字表示 session 框中共有多少 session。
3.5URL
此处显示请求的 url 网址。描述当前状态。
如果是刚打开 Fiddler,会显示什么时间加载了 CustomRules.js;如果选择了一个 Session,会显示该 Session 的 URL;如果在 QuickExec 命令行输入一个命令,就会显示命令相关信息。
4.Fiddler 底端自带命令行控制台
Fiddler 控制台有许多自己的快捷键和命令来方便快速的操作 fiddler,拿到自己想要的 session,这一块的功能性内容将放在另一篇博文中讲解。
4.1快速执行命令框(QuickExec)
这个输入框的作用就是允许用户快速输入并启动一些脚本命令。如下图所示:
一些关于QuickExec的键盘快捷键,比如:
QuickExec 命令行允许你快速执行脚本命令,在 Fiddler 中使用快捷键 Alt + Q 可以快速将焦点设置到命令行。如果 Fiddler 未处于活动状态,请先按Ctrl+ALT+F激活 Fiddler(这个是Fiddler的系统级别的热键,无论当前活动的应用是什么,都可以激活Fiddler。在选项Tools->Fiddler Options->General中可以修改这个热键。)如果当前在 Web Sessions 面板选择了一个 Session,可以使用快捷键 Ctrl + I 快速将 Session URL 直接插入到命令行当前光标处。
除了这个全局热键,启动Fiddler,还可以应用很多其他热键,具体如下表所示:
可以在快速执行命令框输入 cls 或 clear命令来快速的清空会话列表,如下图所示:
常见命令如下表所示:
更多命令 可以查看官方文档, 这里就不再过多赘述了,关于快速执行命令框后面的断点中还会用到。
Fiddler成了网页调试必备的工具,抓包看数据。Fiddler自带命令行控制,并提供以下用法。Fiddler的快捷命令框让你快速的输入脚本命令。除了输入默认命令,也可以自定义命令,你可以通过编辑 FiddlerScript 来增加新命令,找到 OnExecAction 函数增加新命令。多数命令是存在本地 CustomRules.js 文件中,如果不是最新版 Fiddler,可能没有最新的命令。
1.简介
Fiddler成了网页调试必备的工具,抓包看数据。Fiddler自带命令行控制,并提供以下用法。Fiddler的快捷命令框让你快速的输入脚本命令。
除了输入默认命令,也可以自定义命令,你可以通过编辑 FiddlerScript 来增加新命令,找到 OnExecAction 函数增加新命令。多数命令是存在本地 CustomRules.js 文件中,如果不是最新版 Fiddler,可能没有最新的命令。如果要得到最新的命令,要么删除你的 CustomRules.js,要么复制 SampleRules.js 的 ExecAction 到 CustomRules.js 中。
2.官网使用教程
在fiddler官网有QuickExec使用教程,地址是:http://docs.telerik.com/fiddler/knowledgebase/quickexec
3.QuickExec命令行窗口概览
QuickExec命令行窗口位于Fiddler左下角黑色输入框,如下图所示:
4.键盘快捷键
1.在 Fiddler 中使用快捷键 Alt + Q 可以快速将焦点定位到QuickExec 命令行
2.如果当前在 Web Sessions 面板选择了一个 Session,可以使用快捷键 Ctrl + I 快速将 Session URL 直接插入到命令行当前光标处
3.如果Fiddler没有激活,按 Ctrl+Alt+F 首先 激活Fiddler
5.命令列表
以下列表中的命令只能确保在最新版本的 Fiddler 中才生效。
命令 | 含义 | 栗子 |
---|---|---|
筛选高亮类 | ||
= | 高亮 = 号后面的状态码和请求方式session | 1,=post :然后点击enter键回车,可以看到所有的post请求都是以蓝色的底色显示 2,=200 :也可以用这个方法迅速找出响应代码的,=200 =404等情况 |
? | 高亮 ? 号后面的字符session,文本搜索功能,使用Ctrl + F 和 工具栏中的 Find 按钮都可以对session中的字符进行搜索 | ? 关键字 例如:?baidu |
>size | 高亮响应大于或小于指定的session | 1,>50000 直接接数字就可以了,表示选择响应大于50kb的请求 2,<5k 表示选择响应小于5kb的请求 |
@host | 高亮包含指定host的session | @google.com |
断点类 | ||
bpu | 指定URL字符请求断点 | 1,bpu /myservice.asmx (中断所有请求 URL 中包含指定字符的 session) 2,bpu (不带参数表示清空所有设置断点的 session) |
bpafter | 指定URL字符响应断点,中断 URL 包含指定字符的全部 session 响应 | 1,bpafter google (中断所有带google请求的返回值) 2,bpafter (不带参数表示清空所有设置的断点) |
bps | 指定状态码响应断点 | 1,bps 404 (表示中断所有响应404的session) 2,bps (不带参数表示清空所有设置的断点session) |
bpv or bpm | 指定请求方式响应断点 | 1,bpv POST (中断所有 POST 请求的 session) 2,bpv (不带参数表示清空所有设置断点的 session) |
g or go | 继续中断的断点,放行 | |
select | ||
select MIME | 选择响应类型 (Content-Type) 为指定字符的所有 session | 1. select image 2. select css 3. select htm |
select HeaderOrFlag PartialValue | 选择Header或SessionFlag中包含指定字符串内容的session | 1,select ui-comments slow (查找带slow的注释) 2,select ui-bold (如果号前面没有一个斜杠进行转义,则意味着任何值) 3,select ui-comments * (查找带一个*号的注释) 4,select @Request.Accept html (查找request包含html的session) 5,select @Response.Set-Cookie domain (在所有Session的Response中,查找name为Set-Cookie值为域名如baidu.com的Session) |
其他 | ||
PREFS SET | 设置详情页自动定位tab,定位 request/response 在特定的tab上,用于在很多条session中,查看每条session,都右侧的详情数据页面都会自动定位到我们需要的tab上面,不用每条单独操作 | 1,PREFS SET fiddler.ui.inspectors.response.alwaysuse “json” :查看任何 session,Response tab被自动定位到JSON上 2,PREFS SET fiddler.ui.inspectors.request.alwaysuse “webforms” :查看任何 session的resquest默认显示在webforms的tab上 |
allbut or keeponly | 筛选非,选择响应类型 (Content-Type) 不是指定字符的所有 session | 1,allbut xml (只显示所有Content-Type为非xml的session项) 2,allbut java |
bold | 加粗指定字符的session | 1, bold关键字 例如:bold google,回车后,需要重新请求一次,就可以看见加粗了 2,状态栏,显示着:Bolding request for baidu 表示正在加粗。菜单栏中的 Tool > Rest Script 可以重置加粗状态 3,bold (不带参数表示清空所有加粗显示的session) |
cls or clear | 清除所有session | |
start | 将 Fiddler 设为系统代理 | |
stop | 将 Fiddler 从系统代理注销 | |
dump | 打包session到zip压缩包中 | 将所有 session 打包到 C 盘根目录下(C:\)的一个 zip 压缩包中 |
urlreplace | 替换URL中的字符串 | 将 URL 中的字符串替换成特定的字符串 1,urlreplace SeekStr ReplaceWithStr 2,urlreplace (不带参数表示清空所有之前的设置) |
help | 打开 QuickExec 在线帮助页 | 就是这个网址:http://docs.telerik.com/fiddler/knowledgebase/quickexec |
hide | 将 Fiddler 隐藏到任务栏图标中 | |
show | Fiddler 从任务栏图标恢复为图形界面 | 此命令在命令行工具 ExecAction.exe 中使用 |
quit | 退出 Fiddler | |
!dns | 输出IP地址 | 对目标主机执行DNS查找,并在LOG选项卡上显示结果 1,!dns www.baidu.com (将www.baidu.com对应的IP地址解析并输出) 2,!nslookup www.baidu.com (作用和上面这个一样) |
!listen | 监听多个端口号 | 在另一个端口上设置一个额外的监听器,可选由HTTPS证书保护 1,!listen 8889 (同时截获通过8080端口的网络请求。) 2,!listen 4443 localhost 3,!listen 444 secure.example.com |
6.自定义命令
你可以通过编辑你的 FiddlerScript 来增加新命令。找到 OnExecAction 函数增加新命令。编辑方式:
1.主菜单 Rules -> Customize Rules… 如下图所示:
2.安装插件 Syntax-Highlighting Addons(右键另存为),安装后会增加一个 FiddlerScript 页签,在这里可以直接编辑保存。(这个是针对低版本的Fiddler,最新的都自带了。)如下图所示:
3.如果安装了此插件,主菜单的菜单项也会使用 Fiddler 脚本编辑器打开。如下图所示:
4.安装了此插件后,Inspectors 页签的响应部分也会增加一个 SyntaxView,用于高亮显示响应的body。如下图所示:
7.默认命令
为什么输入默认命令,会有作用,这因为Fiddler已经定义好了,在OnExecAction函数中,如下图所示: