Fiddler高级用法--设置断点
Fiddler是位于客户端和服务器之间的代理,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
前面介绍了如何使用Fiddler进行抓包和分析,以及如何抓取APP上的数据包。
这里我们介绍下如何修改请求和响应数据,也就是设置断点。
一、对request设置断点
1)通过菜单选项或快捷键F11进行设置,如图
当我们设置断点后,进行HTTP请求,数据包顺序列会有中断的标记,单击该数据包可以看到在右侧会增加一行操作栏。这个时候我们在前端是没有正常加载网页的,点击【Run to Completion】后可以返回响应数据。
接下来为了看我们的断点设置是否生效,我们以登录为例子进行测试。登录无忧行网站,输入正确的用户名和密码,点击登录。我们断点规则设置为before request,然后将密码清空,看看服务器给我们返回了什么响应数据。
继续以登录为例子,这次我们将手机号改成非移动账号进行登录。
由此可见,我们的断点已经设置成功,并且成功修改了前端传到后端的HTTP的请求数据。然后继续向后端发送请求。并且后端会处理修改后的HTTP请求数据并响应。
2)通过菜单选项或快捷键进行设置时,会将所有的HTTP请求都设置断点,但有时我们只想针对某个服务器发出的请求设置断点,应该怎么操作呢?
Fiddler是支持命令操作的,我们可以通过“bpu 服务器地址”命令来对特定的请求设置断点。
在下图所示的位置输入命令,然后回车运行。
这个时候从该服务器发出的所有请求都会被中断,而从其他服务器发出的请求可以正常响应。
如果要清除原来的断点,可以在命令行输入“bpu”,就会清除所有的断点。
二、对response设置断点
1)同样的也可以通过菜单选项或快捷键alt+F11进行设置
2)通过命令“bpafter 服务器地址”
用一个实例来验证通过设置断点修改响应数据。
以百度主页为例,我们拦截到响应数据中的title值为”百度一下,你就知道“,将响应数据中的title改成”test百度一下,你就知道“,然后在前端查看最终展示。
通过几个实例,更好的帮助我们理解断点的含义,也巩固了Fiddler作为代理服务器的概念。
----------------------------------------------------------------------------------------------------------------------------------------------
总结
如图,箭头所指的位置时可以点击的。共三种状态:
1.空白:不设置断点。
2.箭头向上:表示断点请求。此时客户端的请求是无法直接到达目标服务器的,需要手动控制。
3.箭头向下:表示断点响应。此时目标服务器的响应是无法直接到达客户端的,需要手动控制。
还有一种打断点的方式
在命令行中输入命令:
bpu www.baidu.com (断点请求)
bpuafter www.baidu.com(断点响应)
这种方法只会中断www.baidu.com
断点请求并修改
如图,操作步骤:
- 设置断点请求,访问网页
- 点击对应的会话
- 查看请求报文信息
- 修改请求内容
- 完成断点,放行,把该请求发送给目标服务器。
图中Break On Response表示把请求发给服务器,但是服务器的响应被fiddler拦截,此时可以修改响应内容(和断点响应类似)。
断点响应并修改
和断点请求操作类似,只是在响应区域修改报文信息即可。
在断点响应时,请注意超时时间。