一、什么是抓包?

抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

二、为什么需要抓包?

1、安全问题

​数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件​进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统​帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。

2、接口测试

  • 在进行接口测试时,如果没有接口文档,则可以通过抓包工具获取所测的接口信息。
  • 当请求遇到报错的情况时,可以通过抓包工具抓取请求和响应,初步定位问题所在,查看请求的信息是否有误,服务器要返回的数据是否按实际情况下发。
  • 校验后端是否做校验。若接口不做校验,可能存在绕过前端界面直接抓取到接口,直接修改请求数据,这时可通过后端接口修改数据库数据,可能会导致损失。

三、为什么选择使用Fiddler进行抓包?

Wireshark过于庞大了,只用来抓取Http显得有些大材小用。

Httpwatch只支持IE和firefox。

Fiddler可以记录客户端和服务器端的所有HTTP请求,可针对特定的HTTP请求分析请求数据、设置断点、调试Web应用、修改请求的数据,甚至可以修改服务器返回的数据。

四、Fiddler工具原理

Fiddler再客户端和服务器中建立了一个代理服务器,它工作于七层中的应用层,可以捕获通过的HTTP(S)请求。启动之后会自动将代理服务器设置为本机。

五、Fiddler抓取Https的流程

Fiddler抓包工具_Fiddler抓包工具

  • 客户端请求建立HTTPS连接,发送客户端支持的加密协议和版本列表等信息给服务器;
  • Fiddler接受客户端的请求并伪装成客户端发送相同的请求给Web服务器;
  • Web服务器收到Fiddler的请求后,从请求中筛选出合适的加密协议并返回服务器CA证书,证书中包含公钥信息;
  • Fiddler收到服务器响应之后,保存服务器证书并自签名一个证书,伪装成服务器将该证书下发给客户端;
  • 客户端验证证书的合法性(Fiddler能否抓取到HTTPS报文关键就看这一步了);
  • 客户端生产对称密钥并使用自签名证书的公钥进行加密,发送给服务器;
  • Fiddler拦截客户端的请求之后,使用私钥解密该报文,获取对称密钥并使用CA证书的公钥加密,再发送给Web服务器;
  • Web服务器接收到客户端加密后的对称密钥,采用私钥解密,并使用对称密钥解密测试数据传给客户端;
  • Fiddler使用前面获取的对称密钥解密报文;
  • 客户端验证数据无误后,HTTPS连接建立完成,此时客户端开始向服务器发送使用对称密钥加密的业务数据;
  • Fiddler使用前面获取的对称密钥解密客户端发送的数据并重新加密转发给客户端。

六、Fiddler界面详解

Fiddler抓包工具_Fiddler抓包工具_02

  • 工具栏依次是:数据重放(Replay),转到(GO),数据流(Stream),解码(Decode),保持所以会话(session),进程(Process),查找(Find),保存(Save),浏览(Browse),清除缓存(clear Cache),文字编码(TextWizard),分离(Tearoff)。
  • 会话列表:显示捕捉每个session会话
  • 请求响应:查看请求信息
  • 返回响应:查看返回请求信息
  • 命令行工具:通过输入一些命令完成操作
  • statistics选项卡表示统计请求和响应的一些信息

Fiddler抓包工具_Fiddler抓包工具_03

Inspectors 选项卡下可以查看HTTP 请求和HTTP响应的报文结构。其中Raw选项卡可以查看完整的消息,Headers 选项卡只查看消息中的Header。

Fiddler抓包工具_Fiddler抓包工具_04

AutoResponder选择卡,模拟返回的内容.

Fiddler抓包工具_Fiddler抓包工具_05

composer选项卡是Fiddler做接口调试的模块.

Fiddler抓包工具_Fiddler抓包工具_06

会话列表各模块所对应的内容

Fiddler抓包工具_Fiddler抓包工具_07

会话列表各图标的含义

Fiddler抓包工具_Fiddler抓包工具_08

七、参考链接

https://baike.baidu.com/item/%E6%8A%93%E5%8C%85/9929103?fr=aladdin

https://blog.csdn.net/qq_42445025/article/details/107505209