抓包工具 Fiddler
一.为什么使用Fiddler
- Firebug 模拟的http请求的功能不够
- Wireshark适用于企业级 比较庞大复杂,对于只抓取htt请求的应用来说有点大材小用了
- Httpwatch只支持IE 和 Firefox浏览器 (其他浏览器可能会有相应的插件)
- Fiddler 是一个使用本地 127.0.0.1:8888 的HTTP代理, 任何能够设置HTTP代理为127.0.0.1:888的浏览器都可以使用Fiddler
二、http服务器代理 和 web代理服务器
三、Fiddler如何捕获HTTPS会话
- 默认情况下Fiddler不会捕获HTTPS会话,需要你设置下,打开Fiddler Tool > Options… > HTTPS
- 选中checkbox ,下拉框是接收任何地方的请求, 第一次的时候会弹出对话框 ,点击 YES即可
-
如果要修改端口,防止端口冲突的话 , 选择connection
-
cmd 窗口 使用 netstat 命令 查看端口 看是否配置成功了
为什么有这么多呢 ? 暂时也不知道
netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接在正常运作
Fiddler主界面
左下方是 会话 session
标题的含义
- # : Http Request 的请求顺序 从1开始
- Result Http相应的状态
- Protocol 请求使用的协议 (如HTTP / HTTPS / FTP)
- Host 请求地址的域名
- URL 请求的服务器路径和文件名 ,也包括GET参数
- Body 请求的大小 , 以 byte为单位
- Caching 请求的缓存过期时间或缓存控制 header等值
- Content-Type 请求响应的类型
- Process 发出此请求的Windows 进程以及进程ID
- Comments 用户通过脚本或者右键菜单给此session增加的备注
- Custom 用户可以通过脚本设置的自定义值
- 栏图表说明
注意请求的host字段,可以看到有多个来自www.csdn.net的子域名的响应 说明在大型网站的架构中
大多需要多个子域名,这些子域名可能是单独用于缓存静态资源的,也可能是专门负责媒体资源的,或者是专门负责数据统计的(如pingback)
右键 save 可以保存请求的报文信息,可以是请求报文,也可以是响应报文 , 也可以将整个会话作为txt保存到桌面
-
Replay 选中一些请求之后replay 可以重新发送这些请求
-
Inspectors 详情
inspactor 面板 提供 headers , txtview , hexview , Raw 等多种方式查看单条http请求的请求报文的信息
上半部分是请求头部分 下半部分是响应头部分
而且提供了很多格式查看每个请求和响应的内容-
Raw 标签可以查看响应报文和响应正文 但是不包含请求报文
-
Auth标签可以查看授权Proxy-Authorization 和 Authorization的相关信息
-
Cookies 标签可以看到请求的cookie 和响应的 set-cookie 头信息
-
WebForm 就是web表单的形式 再拦截到请求的时候可以在这里修改参数
-
-
AutoResponder 标签
Fiddler比较重要而且比较强大的功能之一。用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应 第二个勾选 unmatched requests passthrough 不匹配的请求直接通过 否则的话都给拦截了
-
Statistics面板 HTTP请求的性能和其他数据分析
-
composer面板
可以模拟向相应的服务器发送数据的过程 (这就是灌水机器人的原理,也可以是部分http flood的一种方式)
-
Filters面板
Filter标签可以设置过滤规则,来达到过滤http请求的目的
第一个下拉框可以选择 抓取 广域网 或者 局域网 的http 请求
第二个下拉框可以 选择 只抓取列出的 host 或者 显示的时候加粗也可以过滤特定http 状态码的请求
可以过滤特定请求类型的http请求(如css请求 , image请求 js请求等)
可以过滤请求报文大于或者 小于指定大小(byte) 的请求过滤器的应用
多台服务器,排查哪台服务器出错 , 输入ip , 如果出现了5 开头的错误,那么这个服务器就出错了
广域网 和 局域网
* 广域网, 又称 外网,公网 。是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围 * 局域网 Intranet 又称为内网 是一个可以连接住宅,学校,实验室,大学校园或办公大楼等有限区域内计算机的计算机网络
-
Use Filters 勾选则表示使用过滤 不勾选则不使用过滤
-
Actions : 有四个选项
1. Run Filterset now 立刻运行过滤设置
2. Load Filterset : 加载保存的过滤设置
3. Save Filterset 保存过滤设置
4. help : 帮助 -
Hosts 该设置项有两个选项
1. 第一个下拉框是显示内网 (局域网) 或者外网 (广域网)选项
2. 第二个下拉框是根据主机名信息显示或者隐藏或者标记指定请求-
Client process 有三个选项
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201202200545680.png)
- Show only traffic form: 根据指定的进程进行过滤 选择后将只显示由该进程发出的请求
- Show only Internet Exprlorer tarffic 只关心IE浏览器发出的请求
- Hide traffic from Service Host : 就是 Sevhost 应该是微软Windows操作系统的系统程序
-
Request Headers
1. Show only if URL contains 可以通过正则表达式过滤请求地址中包含或不包含的内容 例如 REGEX:\.(js|css|js\?.*|css\?.*) $ (隐藏所有js 和 css 请求) 2. Hide if URL contains 于第一个 是相反的 隐藏 3. Flag requests with headers 支持指定某个http请求头名称 如果在web sesion 列表中存在该请求头,会加粗显示改session 4. Delete requet headers 如果包含该请求头 就删除该请求头 5. Set request header 将HTTP请求头更新为输入的值
-
Breakpoints 断点设置
1. Break request on post 对Post 请求设置断点
2. break request on get with query string 对get请求方式 且 包含了查询条件 的请求 设置断点
3. break on XMLHTTPReqeust 对所有能够确定是通过XMLHttpRequest对象发送的请求设置断点
4. break response on Content-Type 会为 响应头中包含了指定文本的相应 设置响应断点
-
-
Response Sstatus Code 根据响应状态码设置断点
-
Response Type and Size
根据响应数据的类型显示或隐藏
根据响应数据的大小显示或隐藏
根据响应所需要的时间设置背景颜色
根据文件类型进行限制
Response Headers 于 Request 类似 相对的这个是针对响应头
对request 设置断点
Rules > Automatic Breakpoints > Before Reqeust
当我们设置断点之后,进行HTTP请求 ,数据包顺序列就会有中断标记
单击该数据包可以看到 右侧会增加一栏操作栏 我们可以修改请求参数
通过bpu 命令
如果我们只想针对某个服务器发出的请求设置断点 , 可以在命令行输入 bpu 服务器地址
对response 设置断点
-
于request 类似
-
Rules > Automatic Breakpoints > After Responses
-
-
点击Response body is encoded. Click to decode. 进行解码
-
修改数据点击响应