Fiddler抓包之【 抓取https请求 】详解教程

这篇具有很好参考价值的文章主要介绍了Fiddler抓包之【 抓取https请求 】详解教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

目录:导读

引言

概况

基本原理

抓HTTPS的原理

HTTPS请求两类

Fiddler抓包要求

总结

写在最后


引言

  在日常测试中,不管是功能测试还是接口测试,避免不了抓包。抓包工具有很多,这里只讲fiddler的使用,并且是对https请求的抓取。

概况

  抓包之前,先了解一下Fiddler。

  Fiddler是一款免费且功能强大的数据包抓取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。

基本原理

  Fiddler是位于客户端和服务器端之间的HTTP代理, 它能够记录客户端和服务器之间的所有 HTTP(S)请求,可以针对特定的HTTP(S)请求,分析网络传输的数据,还可以设置断点、修改请求的数据和服务器返回的数据。
Fiddler在浏览器与服务器之间建立一个代理服务器,Fiddler工作于七层中的应用层,能够捕获通过的HTTP(S)请求。Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP(S)请求数据。数据传递流程大致如下:

Fiddler抓包之【 抓取https请求 】详解教程

  1) 客户端像WEB服务器发送HTTP(S)请求时,请求会先经过代理Fiddler代理服务器。
  2) Fiddler代理服务器截取客户端的请求报文,再转发到WEB服务器,转发之前可以做一些请求报文参数修改的操作。
  3) WEB服务器处理完请求以后返回响应报文,Fiddler代理服务器会截取WEB服务器的响应报文。
  4) Fiddler处理完响应报文后再返回给客户端。

  简单来说就是:

  客户端请求 -> 经过代理 -> 到达服务端
  服务端返回 -> 经过代理 -> 到达客户端

抓HTTPS的原理

  现在APP中的数据传输基本上都使用HTTS传输,传输的数据都是经过加密的,这增加了我们分析数据包的难度,还好Fiddler除了可以抓取HTTP数据包,还可以抓取HTTPS数据包。由于HTTPS传输需要使用到CA证书,所以抓取抓取HTTPS数据包时需要做一些特殊配置。Fiddler截取HTTPS报文的流程大致如下:

Fiddler抓包之【 抓取https请求 】详解教程

  1) 客户端请求建立HTTPS链接,发送客户端支持的加密协议及版本列表等信息给服务器端。
  2) Fiddler接受客户端请求并伪装成客户端向WEB服务器发送相同的请求。
  3) WEB服务器收到Fiddler的请求以后,从请求中筛选合适的加密协议。并返回服务器CA证书,证书中包括公钥信息。
  4) Fiddler收到WEB服务器的响应后保存服务器证书并自签名一个CA证书,伪装成服务器,把该证书下发给客户端。
  5) 客户端验证证书合法性。(Fiddler能否抓取到HTTPS报文关键看这一步)
  6) 客户端生产对称密钥,通过证书的公钥加密发送给服务器。
  7) Fiddler拦截客户端的请求以后,使用私钥解密该报文,获取对称加密秘钥,并使用服务器证书中带的公钥加密该对称密钥发送给WEB服务器。此时对称密钥已经泄露了,以后可以使用该秘钥界面客户端和服务器端传输的数据。
  8) WEB服务器接收到客户端发送的加密的对称密钥后使用私钥解密,并使用对称密钥加密测试数据传给客户端。
  9) Fiddler使用前面获取的对称密钥解密报文。
  10) 客户端验证数据无误以后HTTPS连接就建立完成,客户端开始向服务器发送使用对称密钥加密的业务数据
  11) Fiddler使用前面获取的对称密钥解密客户端发送的数据并重新加密转发给客户端。

HTTPS请求两类

  1.带证书的https请求:请求中携带证书,只要证书正确就能请求过去,没有其它要求。

  2.不带证书的https请求:只要是CA颁布的正规证书(收费的),都可以不用携带证书,达到https的加密效果,大大减轻了请求的代码量,但是这种请求必须要求请求方合法(时间要正确,比如把手机时间调成几天前,证书就会认为请求非法,拒绝访问)

Fiddler抓包要求

  从上面可以看到,fiddler相当于代理,客户端和服务器交互都要通过fiddler,Fiddler抓取HTTPS协议成功的关键是根证书(根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。),这是一个信任链的起点,这也是Fiddler伪造的CA证书能够获得客户端和服务器端信任的关键。

  手机或模拟器抓包https请求的话,需要在手机上安装fiddler证书。

  安装步骤这里不复述了。

问题1:需要注意的是,不是任何Https请求包都可以抓到的。

  Android7.0以下是可以的,只要手机里安装对应的CA证书,比如用Charles抓包,手机只需安装Charles提供的证书就行;Android7.0之后,Google推出更加严格的安全机制,应用默认不信任用户证书(手机里自己安装的证书),自己的app可以通过配置解决,但是抓其它app的Https请求就行不通。

  首先看一下安卓7.0以上的系统,抓包如下:

  

Fiddler抓包之【 抓取https请求 】详解教程

  

Fiddler抓包之【 抓取https请求 】详解教程

如果是安装7.0以下的版本,这里拿安卓4.0来演示,如图:

   

Fiddler抓包之【 抓取https请求 】详解教程

Fiddler抓包之【 抓取https请求 】详解教程

  结论是android7.0以下版本,在模拟器下抓包https是没有问题的。当然手机同样的版本也会支持。而高于7.0的安卓系统则抓不了https请求。

  注意这里的https请求是没有携带CA证书到请求中去的。

问题2:如果不能,那些情况下可以抓取,那些情况下抓取不到?

  虽然Android7.0之后常规手段不能抓Https的包,但是可以通过黑科技跳过证书验证流程,例如,通过xposed,安装JustTrustMe模块,Https证书验证直接跳过。这个没有试过,可自行测试。

问题3:如何防止被抓包?

  1. Https双向验证,不是客户端的请求,拒接链接(这里服务端拒绝和客户端建立连接)
  2. 判断是否是使用WIFI代理(不可靠,可以通过hook跳过)
  3. 数据加密传输(很多app都是采用加密传输,要注意密钥的安全问题,防止被反编译泄露密钥)

总结

  以上就是手机或模拟器抓取https请求包的介绍。一些简单安装或抓取步骤就没在这里一一讲解。 另外对自动化测试,测试开发及性能测试相关的朋友可以加入交流群,学习与沟通~

写在最后

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

看到这篇文章的人有觉得我的理解有误的地方,也欢迎评论和探讨~

你也可以加入下方的的群聊去和同行大神交流切磋

 Fiddler抓包之【 抓取https请求 】详解教程Fiddler抓包之【 抓取https请求 】详解教程Fiddler抓包之【 抓取https请求 】详解教程Fiddler抓包之【 抓取https请求 】详解教程Fiddler抓包之【 抓取https请求 】详解教程Fiddler抓包之【 抓取https请求 】详解教程Fiddler抓包之【 抓取https请求 】详解教程Fiddler抓包之【 抓取https请求 】详解教程Fiddler抓包之【 抓取https请求 】详解教程文章来源地址https://www.toymoban.com/news/detail-468338.html

到了这里,关于Fiddler抓包之【 抓取https请求 】详解教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Fiddler工具 — 19.Fiddler抓包HTTPS请求(二)

    5、查看证书是否安装成功 方式一: 点击Tools菜单 — Options... — HTTPS — Actions 选择第三项: Open Windows Certificate Manager 打开Windows证书管理器。 打开Windows证书管理器,选择操作—查看证书,在搜索框中输入 Fiddler 来查看证书。 查看结果: 然后可以选择一个证书,进行打开、删

    2024年02月22日
    浏览(29)
  • Fiddler工具 — 18.Fiddler抓包HTTPS请求(一)

    1、Fiddler抓取HTTPS过程 第一步: Fiddler截获客户端发送给服务器的HTTPS请求,Fiddler伪装成客户端向服务器发送请求进行握手 。 第二步: 服务器发回相应,Fiddler获取到服务器的CA证书, 用根证书(这里的根证书是CA认证中心给自己颁发的证书)公钥进行解密, 验证服务器数据

    2024年02月21日
    浏览(30)
  • 【从零开始学技术】Fiddler 抓取 https 请求大全

    注意浏览器代理区别 Chrome/IE浏览器使用的都是系统代理设置 在chrome浏览器的设置中搜索代理,可以看到 打开IE浏览器,选择设置-Internet选项 Firefox浏览器使用的是单独的一套代理系统 在Firefox的代理设置中,我们也可以选择使用系统代理 Fiddler打开之后默认是可以抓取到Chro

    2024年02月02日
    浏览(27)
  • 接口测试辅助,Fiddler抓取安卓手机https请求(详细)

    Fiddler 是一款免费、灵活、操作简单、功能强大的 HTTP 代理工具,是目前最常用的抓包工具之一。 具备的功能:抓取所有的 HTTP/HTTPS 包、过滤会话、分析请求详细内容、伪造客户端请求、篡改服务器响应、重定向、网络限速、断点调试等。 Fiddler 工作原理 Fiddler 抓包实现原理

    2024年02月09日
    浏览(28)
  • HTTPS 之fiddler抓包--jmeter请求

    一、浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的。目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度、谷歌等。HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过

    2024年02月09日
    浏览(26)
  • Fiddler抓包工具之fiddler设置抓HTTPS的请求&证书安装

    基础配置: 路径:启动Fiddler 》Tools》Options》HTTPS 注意:Option更改完配置需重启Fiddler才能生效 选中\\\"Decrpt HTTPS traffic\\\",    Fiddler就可以截获HTTPS请求,如果是第一次会弹出证书安装提示,若没有弹出提示,按照路径依次点击,使系统信任证书: Actions》Trust Root Certificate。另外,

    2024年02月16日
    浏览(38)
  • 《吐血整理》高级系列教程-吃透Fiddler抓包教程(33)-Fiddler如何抓取WebSocket数据包

    本来打算再写一篇这个系列的文章也要和小伙伴或者童鞋们说再见了,可是有人留言问WebSocket包和小程序的包不会抓,那就关于这两个知识点宏哥就再水两篇文章。 在计算机通信领域,socket 被翻译为“套接字”(套接字=主机+端口号),它是计算机之间进行通信的一种约定或

    2024年02月06日
    浏览(32)
  • 《吐血整理》高级系列教程-吃透Fiddler抓包教程-Fiddler如何抓取微信小程序的包

    1.简介 有些小伙伴或者是童鞋们说小程序抓不到包,该怎么办了???其实苹果手机如果按照宏哥前边的抓取APP包的设置方式设置好了,应该可以轻松就抓到包了。那么安卓手机小程序就比较困难,不是那么友好了。所以今天宏哥重点说一下安卓手机小程序抓包。 2.前言 首先

    2024年02月12日
    浏览(35)
  • 《吐血整理》高级系列教程-吃透Fiddler抓包教程(34)-Fiddler如何抓取微信小程序的包-上篇

    有些小伙伴或者是童鞋们说小程序抓不到包,该怎么办了???其实苹果手机如果按照宏哥前边的抓取APP包的设置方式设置好了,应该可以轻松就抓到包了。那么安卓手机小程序就比较困难,不是那么友好了。所以今天宏哥重点说一下安卓手机小程序抓包。 首先看下是否满足

    2024年02月04日
    浏览(37)
  • 教你如何用fiddler抓取https(详细教程)

    对于想抓取HTTPS的测试初学者来说,常用的工具就是fiddler,可是在初学时,大家对于fiddler如何抓取HTTPS真是伤了脑筋,可能你一步步按着网上的帖子成功了,那当然是极好的,有可能没有成功,这时候你就很抓狂了,我把网络上的教程进行了整合和一些我的安装经验(其中注

    2024年02月10日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包