Fiddler简介
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,甚至这些数据都可以任由你修改)。 Fiddler 要比其他的网络调试器要更加简单,它不仅仅暴露http通讯还提供了一个用户友好的格式
工作原理
Fiddler是位于客户端和服务器端之间的HTTP代理,客户端的所有请求(request)都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应(response),也都会先经过Fiddler然后发送到客户端
Fiddler有两种工作模式,流模式(Streaming Mode)和缓冲模式(Buffering Mode)
- 流模式(Streaming Mode):Fiddler收到请求的数据后实时返回给客户端。
- 缓冲模式(Buffering Mode):Fiddler收到数据后先缓存,等请求的所有数据都准备好之后才返回给客户端
贴心Fiddler
Fiddler通过改写HTTP代理,从而获取相应的数据,使用代理地址:127.0.0.1,端口:8888。启动Fiddler的同时,它已同时设置好了浏览器的代理;当退出Fiddler时,浏览器代理将会自动还原
下载
Fiddler的官方网站: https://www.telerik.com/fiddler
Fiddler的官方帮助:http://docs.telerik.com/fiddler/knowledgebase/quickexec
嗯速度很慢,还有可能进不去,忍忍吧
直接点击下载即可,下载完成之后自定义傻瓜式安装软件
使用
后来由于我菜,我选择了汉化版,打开软件后如下图
总共分为这三大区域
还有一点:我用谷歌没抓成功,查找原因说是可能与什么插件冲突,我也不想随便卸载我的插件,那就用其他浏览器吧
正好留下一个在fiddler自动配置代理的情况下,一个能正常访问的浏览器
Request请求部分解释
- Headers —— 显示客户端发送到服务器的 HTTP 请求的 header,显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等
- Textview —— 显示 POST 请求的 body 部分为文本
- WebForms —— 显示请求的 GET 参数 和 POST body 内容
- HexView —— 用十六进制数据显示请求
- Auth —— 显示响应 header 中的 Proxy-Authorization(代理身份验证) 和 Authorization(授权) 信息
- Raw —— 将整个请求显示为纯文本
- JSON - 显示JSON格式文件
- XML —— 如果请求的 body 是 XML 格式,就是用分级的 XML 树来显示它
Response响应部分解释
- Transformer —— 显示响应的编码信息
- Headers —— 用分级视图显示响应的 header
- TextView —— 使用文本显示相应的 body
- ImageVies —— 如果请求是图片资源,显示响应的图片
- HexView —— 用十六进制数据显示响应
- WebView —— 响应在 Web 浏览器中的预览效果
- Auth —— 显示响应 header 中的 Proxy-Authorization(代理身份验证) 和 Authorization(授权) 信息
- Caching —— 显示此请求的缓存信息
- Privacy —— 显示此请求的私密 (P3P) 信息
- Raw —— 将整个响应显示为纯文本
- JSON - 显示JSON格式文件
- XML —— 如果响应的 body 是 XML 格式,就是用分级的 XML 树来显示它
如何抓取https包
我这里已经抓到了https的包,刚开始安装完成是无法抓取的,我们依次打开
工具-->选项-->HTTPS
进行如下设置,勾选完成之后,证书会弹窗让你安装
安装完成之后,我们点击操作(action)-->打开windows证书管理器-->受信任的根证书颁发机构-->证书
发现如下证书,我们就可以愉快的抓https的数据包了
抓取app数据包
首先还是在工具-->选项下,设置允许远程连接
然后进行如下步骤
- 使用ipconfig查看本机ip
- 把手机连接到与电脑同一局域网下
- 给手机设置代理:ip是电脑ip,端口是8888
然后就可以进行抓取app数据包了
拦截修改数据包
使用Fiddler进行HTTP断点调试是fiddler一强大和实用的工具之一。通过设置断点,Fiddler可以做到
- 修改HTTP请求头信息。例如修改请求头的UA,Cookie,Referer信息,通过“伪造”相应信息达到相应的目的(调试,模拟用户真实请求等)
- 构造请求数据,突破表单的限制,随意提交数据。避免页面js和表单限制影响相关调试
- 拦截响应数据,修改响应实体
设置断点共有两种方式:
fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。有两个断点位置:
- before response。也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据。
- after response。也就是服务器相应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。
- 如何消除命令呢?点击Rules->Automatic Breakpoint->Disabled
命令行设置断点
- bpu在请求开始时中断
- bpafter在响应到达时中断
- bps中断HTTP响应状态为指定字符的全部session响应
- bpv/bpm中断指定请求方式的全部session响应
第一种方式如下,但是我这里就不举例了
第二种方式,命令行在如下位置
拦截如下图,然后点击运行到完成即可放出数据包,这里运行的一定要是请求的完整包,不然可能只是给你加载了个图片
在安全测试中我们可以一直重放数据包进行测试
接下来我们拦截post数据,首先使用命令bpu解除拦截
我们也可以从webform中直接观察post数据
登陆成功
过滤器的设置
这个功能可以说相当重要了,因为我们打开fiddler,瞬间即逝个眼花缭乱的数据包,有很多我们根部不想要,这个时候过滤器就尤为重要
不需要太多解释,直接放张图,刚才的测试中我就已经设置了fiddler只抓本我们地的数据包
需要怎么配合使用自行搭配即可,只要别忘了设置完成记得点击操作(action)--立即生效
基础使用就先这些吧