前端抓包工具

抓包是用于分析网络问题和监控流量的技术,如HTTP/HTTPS协议的数据包抓取。HTTPS通过SSL/TLS提供加密和身份验证。Whistle是一款强大的跨平台抓包调试工具,支持HTTP、HTTPS等协议的代理和修改请求。它可以作为局部代理或者通过SwitchyOmega插件按需设置。
摘要由CSDN通过智能技术生成

什么是抓包?

抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作。

作用:

  • 分析网络问题

  • 业务分析

  • 分析网络信息流通量

  • 网络大数据金融风险控制

  • 探测企图入侵网络的攻击

  • 探测由内部和外部的用户滥用网络资源

  • 探测网络入侵后的影响

  • 监测链接互联网宽频流量

  • 监测网络使用流量(包括内部用户,外部用户和系统)

  • 监测互联网和用户电脑的安全状态

  • 渗透与欺骗

  • ...

1、数据在网络上是以很小的的单位传输的,帧通过特定的称为网络驱动程序的程序进行成型,然后通过网卡发送到网线上,通过网线到达目的机器,在目的机器的一端执行相反的过程。

2、接收端机器的以太网捕获到这些,并告诉操作系统帧已到达,然后对其进行存储。

在这个传输和接收的过程,就可以使用抓包工具(Sniffers)进行抓包,作为前端开发者,通常是抓取应用层的 HTTP/HTTPS 的包。

2.HTTP/HTTPS抓包的原理

HTTP/HTTPS 是应用层使用的通信协议,常见的应用层体系结构是客户端-服务器体系。

但是不同端系统上的客户端程序和服务端程序是利用进程进行通讯。所以抓包就是类似商家,快递站和消费者之间的快递站的作用。即中间人的角色。

HTTP 抓包原理

在 http 标准中,没有对通信端身份验证的标准。对于服务器来说,它接收的 HTTP 请求报文只要格式符合规范,就发送响应报文。

对于客户端来说也是如此,它无法校验服务器的身份,比如它连接的 http://www.jecyu.com 的主机,但由于中间节点的存在,最终连接的可能是 http://www.jerry.com 的主机。

因此,对于 HTTP 抓包,无需做过多的处理,只需要让中间人负责转发客户端和服务端的数据包。

HTTPS 抓包原理

HTTP 是明文传输,容易受到中间人攻击,不安全。

HTTPS 语义仍然是 HTTP,只不过是在 HTTP 协议栈中 http 与 tcp 之间插入安全层 SSL/TSL。

安全层采用对称加密的方式加密传输数据和非对称加密的方式来传输对称密钥,解决 http 数据没有加密、无法验证身份、数据容易纂改三个核心问题。

HTTP + 加密 + 认证 + 完整性保护 = HTTPS

其中验证身份问题是通过验证服务器的证书来实现的,证书是第三方组织(CA 证书签发机构)使用数字签名技术管理的,包括创建证书、存储证书、更新证书、撤销证书。

浏览器连接至一个 HTTPS 网站,服务器发送的不仅仅只是服务器实体证书,而是一个证书链,但不包含根证书,根证书会被内嵌在 Windows, Linux, macOS, Android, iOS 这些操作系统里。

中间人想要抓包,需在 HTTPS 加密通信之前:

1、截取客户端发送的包含证书的报文,伪装成服务端,把自己的证书发给客户端,然后拿到【客户端返回的包含对称加密通信密钥的报文】,生成中间人与客户端对称加密的密钥。

2、同样伪装成客户端,以服务端自己的非对称公钥加密【客户端返回的包含对称加密通信密钥的报文】发给服务端,获得服务端生成的对称加密密钥。

3、这样一来,加密通信建立完成,而中间人拿到了通信的数据密钥,可以查看、修改 HTTPS 的通信报文。

4、这里客户端与中间人通信、中间人与服务端通信,都是正常建立了 HTTPS 加密连接的。

其中很重要的一步是浏览器的根证书校验,CA 机构不可能随便给一个中间人签发不属于它的域名证书,也就不在客户端的操作系统上了,因此只能把中间人的根证书,导入到客户端的操作系统了,以此完成建立加密通信时对中间人证书的验证。

抓包工具 whistle

whistle 是什么

Whistle 是基于 Node 实现的跨平台抓包免费调试工具,其主要特点:

  1. 完全跨平台:支持 Mac、Windows 等桌面系统,且支持服务端等命令行系统

  1. 功能强大:

  • 支持作为 HTTP、HTTPS、SOCKS 代理及反向代理

  • 支持抓包及修改 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求

  • 支持重放及构造 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求

  • 支持设置上游代理、PAC 脚本、Hosts、延迟(限速)请求响应等

  • 支持查看远程页面的 console 日志及 DOM 节点

  • 支持用 Node 开发插件扩展功能,也可以作为独立 npm 包引用

  1. 操作简单

  • 直接通过浏览器查看抓包、修改请求

  • 所有修改操作都可以通过配置方式实现(类似系统 Hosts),并支持分组管理

  • 项目可以自带代理规则并一键配置到本地 Whistle 代理,也可以通过定制插件简化操作

使用 whistle

  1. 先安装 node,再全局安装 whistle

npm i -g whistle 
  1. 启动命令

w2 start
  1. 电脑上设置全局代理,默认的代理的端口为 8899

w2 proxy  设置全局代理
w2 proxy off   关闭全局代理
w2 strat -p 1222 设置端口号
  1. 通过浏览器访问 http://127.0.0.1:8899/ 查看抓包、修改请求等。

  1. 设置浏览器代理(不想全局代理)

如果你不想使用全局代理,就可以安装 SwitchyOmega 插件,按需对某些网站设置 whistle 代理。

whistle 可以做的事情

官方文档whistle 文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值