Fiddler改包的三种方式
Posted diwangguilai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fiddler改包的三种方式相关的知识,希望对你有一定的参考价值。
fiddler作为一个抓包道理工具,接收从客户端/H5发出的请求,再发给服务器,接收从服务器得到的响应,再发给客户端/H5,过程如下图
在工作中,我们经常会碰到这样的问题:客户端限制输入100个字,超过100个就不让输入,但是后台有没有限制这个字段的字数呢?当然我们也可以利用jmeter/postman来模拟请求,但是比较复杂,用fiddler抓包后直接改包,就可以,十分便捷。
改包的三种方式
1.全局断点,Rules->Automatic Breakpoints->Before requests/After responses 可以打开全局断点,点击Disable可以关闭断点
比如点击Before requests,然后页面打开www.baidu.com
fiddler的每个请求都处于等待状态,同时底部的工具栏也亮了
查看该请求的Raw选项卡,修改请求,比如说添加参数a=1
修改完后可以点击两个按钮
Break on Response ,相当于在服务器返回后继续拦截,此时可以继续改Raw下的内容,然后点击 Run to completion,把内容返回给客户端,该请求结束
Run to completion:不拦截服务器返回,直接返回给客户端,该请求结束
2.bpu单个断点
在命令区输入 bpu www.baidu.com ,其实只要输入请求的子字符串,匹配该字符串的请求就会被拦截,不支持正则表达式,因此这样写也可以 bpu baidu
现在再访问 www.baidu.com,也是一样的fiddler等待,底部高亮
之后的操作就和上面的一样了
关闭拦截:上面选择Disable就可以了,这里关闭在命令行输入bpu就可以取消拦截
3.AutoResponder
这是fiddler的一个选项卡,可以提前设置响应的内容,不需要再请求过程中去修改
Enable Rule:打开该规则
Unmatched request passthrough:不匹配规则的请求就放行,不理他
请求一个百度首页,然后把它拖到这个选项卡中
设置匹配规则,其中常用的有如下几种:
1.匹配链接,我们拖进去会显示为EXACT:xxx,我们可以改为要匹配的链接的子字符串,如baidu,当有链接包含baidu就会自动返回设定的值
2.URLWithBody 这里要匹配两个url和body,所以一般都是用例匹配POST请求,比如 URLWithBody:baidu name,当遇到url中包含baidu,且body中有name的,就会自动返回设定的值
3.Header:Accept=html 当请求的Header中包含Accept=html,就会自动返回设定的值
返回值设置:可以把响应的值设置为404,503等,但是常用的是选择一个本地文件
打开百度首页,在请求中,我们会发现其中的logo图片请求
把这个请求拖到AutoResponsder,在选择一个本地图片find a file,把上面的enable和unmatched都勾选上,点击save
此时ctrl+F5刷新百度,注意不能用缓存,然后就变成这样
如果是要在已存在的返回中修改呢?首先必须获得一个返回,在raw中修改,保存,再把这个作为自动返回。
打开百度首页,抓包,修改raw
改成闪电1111
将该请求保存save->response->entire response,保存名为entire
按照上面的步骤,把这个请求拖到AutoResponder,选择find a file,选择刚才的entire,
再次ctrl+F5刷新页面。变成了闪电估分1111
总结:Before requests/After responses会对所有的请求都阻断,bpu可以对指定的某一些阻断,然后再自己去改,AutoResponder可以提前设置返回的值
打字太累了,如果觉得有帮助,不妨请作者喝杯可乐吧!
以上是关于Fiddler改包的三种方式的主要内容,如果未能解决你的问题,请参考以下文章
Android 7.0 以上 Charles 和 Fiddler 无法抓取 HTTPS 包的解决方式