目录:
1.fiddler (抓包工具)
1.1 引入:HTTP/https代理(正向代理)
- 所谓的http代理,其实就是代理客户机的http/https访问,主要代理浏览器访问页面。
代理服务器是介于浏览器和web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
1.2 拓展:反向代理:
- 简单来说:我们和普通用户一样直接去访问浏览器(百度),但是服务端承受不了庞大的用户同时访问,所以会把这些请求分发给子服务器(分发任务),相当于一个资源调度分配。
1.2 初识Fiddler
①什么是抓包?抓包有什么用?
-
网络抓包可以用来分析网络通讯的真实内容,网络上所有的机器都可以进行通讯,数据包很杂,通过抓包能获取想了解的真实内容,以便分析和解决问题。
-
抓包是拦截查看网络数据包内容,通过对抓获的数据包进行分析,可以得到有用的信息。抓包通过对网络上传输的数据进行抓取,可以对其进行分析,对于软件的Debug很大的帮助。也可以通过抓取用户发送的涉及用户名和密码的数据包来获取用户的密码。
- 抓包工具更多的用于网络安全,比如查找感染病毒的计算机。有时也用于获取网页的源代码,以及了解攻击者所用方法、追查攻击者的ip地址等。
基本可以说目前最为全面和强大的抓包工具就是fiddler了,使用也不算麻烦。Fiddler也在官网上有提供非常详细的文档和教程,如果使用的时候遇到问题,可以直接查阅官网文档。
②浅谈fiddler:
由于我们直接访问服务端,会有些数据包丢失,所以使用一些抓包工具,来分析网络通讯的真实内容。比如:fiddler,它的存在就宛如正向代理中的代理服务器,我们在向服务端发送请求的时候,经过一下fiddler,在获取响应的时候再经过一下fiddler,就可以达到获取网络通讯真实内容的目的。
③fiddler下载
Fiddler官方网站下载安装即可(别下成别的了,别的不是收费就是阉割版~):
https://www.telerik.com/fiddler
④fiddler必要配置
- HTTPS的证书
抓包工具抓取HTTPS的包的时候跟HTTP的直接转发是不同的。所以我们需要配置;
同时要设置信任根证书,避免一些不必要的报错。
1.3 fiddler基操
①工具栏
- 给session添加一个注释
- Replay:将目标session再发送一次(重新进行请求)
- 删除session
- 将断点的session恢复执行
- Decode:将传输的数据解码成容易阅读的格式
- Find:查找session
- Save:将session保存成本地文件
- Clear Cache:清除缓存
②Session窗口(会话窗口/请求窗口)
1.#:Session的序号
2.Result:请求的响应状态码
3.Protocol:请求的协议类型
4.Host:域名
5.URL:请求的url
6.Body:响应体的大小
7.Caching:缓存方式
8.Content-Type:响应的数据类型
9.Process:发起请求的进程
10.Comments:注释
小拓展:
同时,每一个session都有不同的颜色,不同的颜色代表不一样的session类型。
③Inspectors标签页
(注意:需要选中会话才会显示哦!)
(1)上半部分:
请求数据窗口
- Headers:报头
- TextView:查看文本数据
- SyntaxView:根据语法格式查看
- WebForms:Web表单
- HexView:查看十六进制数据
- Cookies:查看请求的Cookies
- Json:查看json格式数据
- Raw:格式(响应头里少的信息可在这里找到哦)
(2)下半部分:
响应数据窗口
- Transformer:解压方式
- Headers:报头
- TextView:查看文本数据
- SyntaxView:根据语法格式查看
- ImageView:查看图片
- WebView:Web表单
- HexView:查看十六进制数据
- Cookies:查看响应设置的Cookies
- Json:查看json格式数据
- Raw:格式
④Filters选项(过滤器)
我们在抓包的时候常常会遇到非常杂乱的请求,而我们需要去分析的往往只是其中很小的一部分,那么我们就需要从许多请求中过滤出我们需要的那些请求。
- 是否使用Filters。
- Filters的规则是可以保存和加载的,也就是我们可以把规则存下来以后再用。
- 根据Host域名来进行筛选。
- 根据客户端的进程来进行筛选。
- 根据请求的Headers来进行筛选。
- 断点:Fiddler的断点功能能够让请求在发送后,或者是在返回时暂停,这时候就能够对请求和响应进行相应的修改。
- 根据响应的状态码筛选。
- 根据响应的类型和大小来进行筛选。
- 根据响应的Headers来进行筛选。
⑤Find查找
使用快捷键ctrl+f或者在工具栏中选择find来打开查找窗口,查找窗口可以从所有session中搜索到我们想要的session。
- 文本输入框。
- 可以选择搜索的范围,限定在仅Requests或者response中,也可以选择限定在headers或bodies中。
- 是否区分大小写。
- 是否用正则表达式来搜索。
- 仅仅搜索被选中的session。
- 将搜索到的结果高亮,可以选择颜色。
⑥命令行查找
在Fiddler中同样也是可以使用命令行来进行搜索的,在图中的黑框中输入命令即可。
1. select命令:搜索相应类型的session,也就是content-type。例如:select image/gif
2. ?命令:根据URL来进行搜索。例如:? www.baidu.com
3. =命令:根据状态码来进行搜索
4. @ 根据域名来搜索
⑦断点
设置断点是Fiddler最强大的功能之一,在设置好断点后,Fiddler会捕捉所有经过的消息,我们可以任意修改HTTP请求信息,包括Host、Cookies或表单的数据。可以设置断点修改request,也可以设置断点修改response。
断点方式有两种,一种是通过菜单栏设置全局的断点,一种是通过命令行设置指定的断点。
(1)全局断点
在菜单栏中选择Rules > Automatic Breakpoints,即可选择断点方式。有两个选择,分别是在请求往服务器发送的时候暂停(你会发现你再搜索打断点的浏览器,会搜索不到,需要点击Go才能一步步往下走),和在响应返回到客户端的时候暂停。
(2)指定断点
指定断点需要输入指定的命令来进行断点:
- bpu:在指定网页发起请求后暂停。如:bpu www.baidu.com —————取消断点 bpu+空
- bpafter:在指定网页返回响应时暂停。—————— 取消断点 bpafter+空
- bpm:中断指定请求方式的请求。如:bpm get——————取消断点 bpm+空
- bps:中断指定状态码的session。如:bps 200——————取消断点 bps+空